Model { Name "MANUS_PATIENT_5" Version 5.0 SaveDefaultBlockParams on SampleTimeColors off LibraryLinkDisplay "none" WideLines off ShowLineDimensions off ShowPortDataTypes off ShowLoopsOnError on IgnoreBidirectionalLines off ShowStorageClass off DataTypeOverride "UseLocalSettings" MinMaxOverflowLogging "UseLocalSettings" MinMaxOverflowArchiveMode "Overwrite" BlockNameDataTip off BlockParametersDataTip off BlockDescriptionStringDataTip off ToolBar on StatusBar on BrowserShowLibraryLinks off BrowserLookUnderMasks off Created "Thu Mar 29 23:14:12 2007" Creator "domenicoformica" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%" LastModifiedBy "Administrador" ModifiedDateFormat "%" LastModifiedDate "Mon Mar 31 16:53:34 2008" ModelVersionFormat "1.%" ConfigurationManager "None" SimulationMode "normal" LinearizationMsg "none" Profile off ParamWorkspaceSource "MATLABWorkspace" AccelSystemTargetFile "accel.tlc" AccelTemplateMakefile "accel_default_tmf" AccelMakeCommand "make_rtw" TryForcingSFcnDF off RecordCoverage off CovPath "/" CovSaveName "covdata" CovMetricSettings "dw" CovNameIncrementing off CovHtmlReporting on covSaveCumulativeToWorkspaceVar on CovSaveSingleToWorkspaceVar on CovCumulativeVarName "covCumulativeData" CovCumulativeReport off ExtModeBatchMode off ExtModeTrigType "manual" ExtModeTrigMode "normal" ExtModeTrigPort "1" ExtModeTrigElement "any" ExtModeTrigDuration 1000 ExtModeTrigHoldOff 0 ExtModeTrigDelay 0 ExtModeTrigDirection "rising" ExtModeTrigLevel 0 ExtModeArchiveMode "off" ExtModeAutoIncOneShot off ExtModeIncDirWhenArm off ExtModeAddSuffixToVar off ExtModeWriteAllDataToWs off ExtModeArmWhenConnect on ExtModeSkipDownloadWhenConnect off ExtModeLogAll on ExtModeAutoUpdateStatusClock off BufferReuse on Solver "ode4" SolverMode "Auto" StartTime "0.0" StopTime "10.0" MaxOrder 5 MaxStep "auto" MinStep "auto" MaxNumMinSteps "-1" InitialStep "auto" FixedStep "0.002" RelTol "1e-3" AbsTol "auto" OutputOption "RefineOutputTimes" OutputTimes "[]" Refine "1" LoadExternalInput off ExternalInput "[t, u]" LoadInitialState off InitialState "xInitial" SaveTime on TimeSaveName "tout" SaveState off StateSaveName "xout" SaveOutput on OutputSaveName "yout" SaveFinalState off FinalStateName "xFinal" SaveFormat "Array" Decimation "1" LimitDataPoints on MaxDataPoints "1000" SignalLoggingName "logsout" ConsistencyChecking "none" ArrayBoundsChecking "none" AlgebraicLoopMsg "warning" BlockPriorityViolationMsg "warning" MinStepSizeMsg "warning" InheritedTsInSrcMsg "warning" DiscreteInheritContinuousMsg "warning" MultiTaskRateTransMsg "error" SingleTaskRateTransMsg "none" CheckForMatrixSingularity "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" SfunCompatibilityCheckMsg "none" RTWInlineParameters off BlockReductionOpt on BooleanDataType on ConditionallyExecuteInputs on OptimizeBlockIOStorage on AssertionControl "UseLocalSettings" ProdHWDeviceType "Microprocessor" ProdHWWordLengths "8,16,32,32" RTWSystemTargetFile "grt.tlc" RTWTemplateMakefile "grt_default_tmf" RTWMakeCommand "make_rtw" RTWGenerateCodeOnly off RTWRetainRTWFile off TLCProfiler off TLCDebug off TLCCoverage off TLCAssertion off RTWOptions "-aEnforceIntegerDowncast=1 -aFoldNonRolledExpr=1 -a" "InlineInvariantSignals=0 -aInlineParameters=0 -aLocalBlockOutputs=1 -aRollThr" "eshold=5 -aZeroInternalMemoryAtStartup=1 -aZeroExternalMemoryAtStartup=1 -aIn" "itFltsAndDblsToZero=1 -aGenerateReport=0 -aGenCodeOnly=0 -aRTWVerbose=1 -aInc" "ludeHyperlinkInReport=0 -aLaunchReport=0 -aForceParamTrailComments=0 -aGenera" "teComments=1 -aIgnoreCustomStorageClasses=1 -aIncHierarchyInIds=0 -aMaxRTWIdL" "en=31 -aShowEliminatedStatements=0 -aPrefixModelToSubsysFcnNames=1 -aIncDataT" "ypeInIds=0 -aInsertBlockDesc=0 -aSimulinkBlockComments=1 -aInlinedPrmAccess=" "\"Literals\" -aSuppressErrorStatus=0 -aModelReferenceCompliant=1 -aParenthes" "esLevel=\"Nominal\" -aModelStepFunctionPrototypeControlCompliant=0 -aPortable" "WordSizes=0 -aSupportNonInlinedSFcns=1 -aSupportContinuousTime=1 -aSupportCom" "plex=1 -aSupportNonFinite=1 -aSupportAbsoluteTime=1 -aTargetPreCompLibLocatio" "n=\"\" -aTargetLibSuffix=\"\" -aTargetFcnLib=\"ansi_tfl_tmw.mat\" -aMultiInst" "anceERTCode=0 -aLogVarNameModifier=\"rt_\" -aIsPILTarget=0 -aCombineOutputUpd" "ateFcns=0 -aGenerateASAP2=0 -aGenerateClassInterface=0 -aGenerateTestInterfac" "es=0 -aGenerateSampleERTMain=0 -aGenerateFullHeader=1 -aUtilityFuncGeneration" "=\"Auto\" -aIncludeFileDelimiter=\"Auto\" -aIncludeMdlTerminateFcn=1 -aPurely" "IntegerCode=0 -aERTCustomFileBanners=0 -aRTWCAPIStates=0 -aRTWCAPIParams=0 -a" "RTWCAPISignals=0 -aMatFileLogging=1 -aGenFloatMathFcnCalls=\"ANSI_C\" -aExtMo" "deMexFile=\"ext_comm\" -aExtModeTransport=0 -aExtModeStaticAllocSize=1000000 " "-aExtModeTesting=0 -aExtModeStaticAlloc=0 -aExtMode=0 " 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 OutDataTypeMode "Inherit from 'Constant value'" OutDataType "sfix(16)" ConRadixGroup "Use specified scaling" OutScaling "2^0" } Block { BlockType Demux Outputs "4" DisplayOption "none" BusSelectionMode off } Block { BlockType Derivative } 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 } Block { BlockType Inport Port "1" 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 ContinuousStateAttributes "''" } Block { BlockType MATLABFcn MATLABFcn "sin" OutputDimensions "-1" OutputSignalType "auto" Output1D on } Block { BlockType Mux Inputs "4" DisplayOption "none" } Block { BlockType Outport Port "1" OutputWhenDisabled "held" InitialOutput "[]" } 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 SubSystem Permissions "ReadWrite" TreatAsAtomicUnit off 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 } } AnnotationDefaults { HorizontalAlignment "center" VerticalAlignment "middle" ForegroundColor "black" BackgroundColor "white" DropShadow off FontName "arial" FontSize 10 FontWeight "normal" FontAngle "normal" } LineDefaults { FontName "arial" FontSize 9 FontWeight "normal" FontAngle "normal" } System { Name "tp532906" Location [311, 82, 1579, 744] Open on ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" ReportName "simulink-default.rpt" Block { BlockType SubSystem Name "HUMAN ARM" Ports [4, 2] Position [705, 179, 810, 356] RTWSystemCode "Auto" System { Name "HUMAN ARM" Location [2, 83, 1014, 718] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Q" Position [25, 88, 55, 102] } Block { BlockType Inport Name "Qdot" Position [20, 173, 50, 187] Port "2" } Block { BlockType Inport Name "Q2dots" Position [155, 528, 185, 542] Port "3" } Block { BlockType Inport Name "XY" Position [30, 43, 60, 57] Port "4" } Block { BlockType MATLABFcn Name "F_HUM1" Ports [1, 1] Position [675, 575, 775, 605] Orientation "left" MATLABFcn "F_HUM" OutputDimensions "2" } Block { BlockType MATLABFcn Name "Human arm dynamics" Ports [1, 1] Position [740, 250, 840, 280] MATLABFcn "dynamics_HUM" OutputDimensions "2" } Block { BlockType SubSystem Name "Human motor control" Ports [2, 1] Position [760, 376, 835, 489] BackgroundColor "[1.000000, 0.501961, 0.501961]" RTWSystemCode "Auto" System { Name "Human motor control" Location [2, 82, 1014, 718] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Theta" Position [130, 118, 160, 132] } Block { BlockType Inport Name "Thetadot" Position [125, 178, 155, 192] Port "2" } Block { BlockType Constant Name "Dis" Position [20, 376, 35, 394] Value "0" } Block { BlockType MATLABFcn Name "Human motor control" Ports [1, 1] Position [560, 153, 660, 217] MATLABFcn "Control_HUM" OutputDimensions "2" } Block { BlockType SubSystem Name "Inverse \nkinematics" Ports [2, 1] Position [270, 290, 355, 405] BackgroundColor "[1.000000, 0.501961, 0.501961]" RTWSystemCode "Auto" System { Name "Inverse \nkinematics" Location [241, 120, 1253, 756] Open on ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "XYd" Position [30, 178, 60, 192] } Block { BlockType Inport Name "XYddot" Position [30, 238, 60, 252] Port "2" } Block { BlockType Demux Name "Demux" Ports [1, 2] Position [550, 145, 560, 220] BackgroundColor "black" ShowName off Outputs "2" } Block { BlockType Demux Name "Demux1" Ports [1, 2] Position [245, 156, 250, 214] BackgroundColor "black" ShowName off Outputs "2" } Block { BlockType Demux Name "Demux2" Ports [1, 2] Position [245, 216, 250, 274] BackgroundColor "black" ShowName off Outputs "2" } Block { BlockType MATLABFcn Name "MATLAB Fcn" Ports [1, 1] Position [395, 153, 495, 217] MATLABFcn "inverse_HUM" OutputDimensions "2" } Block { BlockType Mux Name "Mux" Ports [6, 1] Position [345, 96, 355, 274] ShowName off Inputs "6" DisplayOption "bar" } Block { BlockType Mux Name "Mux1" Ports [2, 1] Position [900, 161, 905, 199] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Integrator Name "Thetad1" Ports [1, 1] Position [650, 114, 680, 146] InitialCondition "0.5236" } Block { BlockType Integrator Name "Thetad2" Ports [1, 1] Position [650, 214, 680, 246] InitialCondition "1.7141" } Block { BlockType Outport Name "Thetad" Position [970, 173, 1000, 187] } Line { SrcBlock "Mux" SrcPort 1 DstBlock "MATLAB Fcn" DstPort 1 } Line { SrcBlock "MATLAB Fcn" SrcPort 1 DstBlock "Demux" DstPort 1 } Line { SrcBlock "Demux" SrcPort 1 Points [35, 0; 0, -35] DstBlock "Thetad1" DstPort 1 } Line { SrcBlock "Demux" SrcPort 2 Points [35, 0; 0, 30] DstBlock "Thetad2" DstPort 1 } Line { SrcBlock "Thetad2" SrcPort 1 Points [90, 0] Branch { Points [0, -210; -510, 0; 0, 120] DstBlock "Mux" DstPort 2 } Branch { Points [110, 0] DstBlock "Mux1" DstPort 2 } } Line { SrcBlock "Thetad1" SrcPort 1 Points [20, 0] Branch { Points [0, -75; -395, 0; 0, 55] DstBlock "Mux" DstPort 1 } Branch { Points [180, 0] DstBlock "Mux1" DstPort 1 } } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "Thetad" DstPort 1 } Line { SrcBlock "Demux1" SrcPort 1 DstBlock "Mux" DstPort 3 } Line { SrcBlock "Demux1" SrcPort 2 DstBlock "Mux" DstPort 4 } Line { SrcBlock "XYd" SrcPort 1 DstBlock "Demux1" DstPort 1 } Line { SrcBlock "Demux2" SrcPort 1 DstBlock "Mux" DstPort 5 } Line { SrcBlock "Demux2" SrcPort 2 DstBlock "Mux" DstPort 6 } Line { SrcBlock "XYddot" SrcPort 1 DstBlock "Demux2" DstPort 1 } } } Block { BlockType Mux Name "Mux" Ports [3, 1] Position [510, 92, 520, 278] ShowName off Inputs "3" DisplayOption "bar" } Block { BlockType Constant Name "Pf" Position [50, 316, 65, 334] Value "[-0.14*cos(pi/4);-0.14*sin(pi/4)]" } Block { BlockType Constant Name "Pi" Position [15, 296, 30, 314] NamePlacement "alternate" Value "[0;0]" } Block { BlockType SubSystem Name "Trajectory planner" Ports [5, 2] Position [120, 290, 190, 400] BackgroundColor "green" RTWSystemCode "Auto" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" System { Name "Trajectory planner" Location [0, 82, 1012, 744] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Pi" Position [70, 28, 100, 42] } Block { BlockType Inport Name "Pf" Position [25, 48, 55, 62] Port "2" } Block { BlockType Inport Name "ti" Position [70, 68, 100, 82] Port "3" } Block { BlockType Inport Name "tf" Position [25, 88, 55, 102] Port "4" } Block { BlockType Inport Name "Dis" Position [70, 108, 100, 122] Port "5" } Block { BlockType Clock Name "Clock" Position [115, 180, 135, 200] Decimation "10" } Block { BlockType Demux Name "Demux" Ports [1, 4] Position [490, 31, 500, 134] BackgroundColor "black" ShowName off } Block { BlockType MATLABFcn Name "MATLAB Fcn" Ports [1, 1] Position [295, 55, 410, 115] MATLABFcn "planner_HUM" OutputDimensions "4" } Block { BlockType Mux Name "Mux" Ports [6, 1] Position [240, 25, 255, 145] ShowName off Inputs "6" DisplayOption "bar" } Block { BlockType Mux Name "Mux1" Ports [2, 1] Position [695, 82, 700, 133] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux2" Ports [2, 1] Position [695, 32, 700, 83] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Outport Name "XYd" Position [755, 53, 785, 67] } Block { BlockType Outport Name "Xddot" Position [755, 103, 785, 117] Port "2" } Line { SrcBlock "Mux" SrcPort 1 DstBlock "MATLAB Fcn" DstPort 1 } Line { SrcBlock "MATLAB Fcn" SrcPort 1 DstBlock "Demux" DstPort 1 } Line { SrcBlock "Demux" SrcPort 1 DstBlock "Mux2" DstPort 1 } Line { SrcBlock "Demux" SrcPort 2 DstBlock "Mux2" DstPort 2 } Line { SrcBlock "Pi" SrcPort 1 DstBlock "Mux" DstPort 1 } Line { SrcBlock "Pf" SrcPort 1 DstBlock "Mux" DstPort 2 } Line { SrcBlock "ti" SrcPort 1 DstBlock "Mux" DstPort 3 } Line { SrcBlock "tf" SrcPort 1 DstBlock "Mux" DstPort 4 } Line { SrcBlock "Demux" SrcPort 3 DstBlock "Mux1" DstPort 1 } Line { SrcBlock "Mux2" SrcPort 1 DstBlock "XYd" DstPort 1 } Line { SrcBlock "Demux" SrcPort 4 DstBlock "Mux1" DstPort 2 } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "Xddot" DstPort 1 } Line { SrcBlock "Dis" SrcPort 1 DstBlock "Mux" DstPort 5 } Line { SrcBlock "Clock" SrcPort 1 Points [40, 0; 0, -55] DstBlock "Mux" DstPort 6 } } } Block { BlockType Constant Name "tf" Position [55, 356, 70, 374] Value "2" } Block { BlockType Constant Name "ti" Position [20, 336, 35, 354] Value "0" } Block { BlockType Outport Name "Tau" Position [785, 178, 815, 192] } Line { SrcBlock "Human motor control" SrcPort 1 DstBlock "Tau" DstPort 1 } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Human motor control" DstPort 1 } Line { SrcBlock "Theta" SrcPort 1 DstBlock "Mux" DstPort 1 } Line { SrcBlock "Thetadot" SrcPort 1 DstBlock "Mux" DstPort 2 } Line { SrcBlock "Inverse \nkinematics" SrcPort 1 Points [75, 0; 0, -105] DstBlock "Mux" DstPort 3 } Line { SrcBlock "Pi" SrcPort 1 DstBlock "Trajectory planner" DstPort 1 } Line { SrcBlock "Pf" SrcPort 1 DstBlock "Trajectory planner" DstPort 2 } Line { SrcBlock "ti" SrcPort 1 DstBlock "Trajectory planner" DstPort 3 } Line { SrcBlock "tf" SrcPort 1 DstBlock "Trajectory planner" DstPort 4 } Line { SrcBlock "Dis" SrcPort 1 DstBlock "Trajectory planner" DstPort 5 } Line { SrcBlock "Trajectory planner" SrcPort 1 DstBlock "Inverse \nkinematics" DstPort 1 } Line { SrcBlock "Trajectory planner" SrcPort 2 DstBlock "Inverse \nkinematics" DstPort 2 } } } Block { BlockType Mux Name "Mux1" Ports [3, 1] Position [685, 193, 695, 337] ShowName off Inputs "3" DisplayOption "bar" } Block { BlockType Mux Name "Mux2" Ports [2, 1] Position [135, 85, 140, 125] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux3" Ports [2, 1] Position [820, 553, 830, 622] Orientation "left" NamePlacement "alternate" ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [895, 345, 915, 365] ShowName off IconShape "round" Inputs "-+" InputSameDT off OutDataTypeMode "Inherit via internal rule" } Block { BlockType SubSystem Name "Theta1" Ports [2, 1] Position [385, 23, 460, 132] BackgroundColor "[1.000000, 0.501961, 0.501961]" RTWSystemCode "Auto" System { Name "Theta1" Location [2, 82, 1014, 718] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "XY" Position [155, 178, 185, 192] } Block { BlockType Inport Name "XYdot" Position [155, 238, 185, 252] Port "2" } Block { BlockType Integrator Name "Initial angular\nposition" Ports [1, 1] Position [570, 166, 605, 204] InitialCondition "[0.5236;1.7141]" } Block { BlockType MATLABFcn Name "Inverse kinematics\nof the human arm" Ports [1, 1] Position [395, 153, 495, 217] MATLABFcn "inverse_HUM" OutputDimensions "2" } Block { BlockType Mux Name "Mux" Ports [3, 1] Position [345, 96, 355, 274] ShowName off Inputs "3" DisplayOption "bar" } Block { BlockType Outport Name "Theta" Position [745, 178, 775, 192] } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Inverse kinematics\nof the human arm" DstPort 1 } Line { SrcBlock "XY" SrcPort 1 DstBlock "Mux" DstPort 2 } Line { SrcBlock "XYdot" SrcPort 1 DstBlock "Mux" DstPort 3 } Line { SrcBlock "Inverse kinematics\nof the human arm" SrcPort 1 DstBlock "Initial angular\nposition" DstPort 1 } Line { SrcBlock "Initial angular\nposition" SrcPort 1 Points [80, 0] Branch { Points [0, -120; -395, 0; 0, 60] DstBlock "Mux" DstPort 1 } Branch { DstBlock "Theta" DstPort 1 } } } } Block { BlockType SubSystem Name "Theta2dots" Ports [5, 1] Position [410, 396, 510, 554] BackgroundColor "yellow" RTWSystemCode "Auto" System { Name "Theta2dots" Location [2, 82, 1014, 718] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Thetadot" Position [75, 353, 105, 367] } Block { BlockType Inport Name "Theta" Position [50, 78, 80, 92] Port "2" } Block { BlockType Inport Name "Q" Position [45, 188, 75, 202] Port "3" } Block { BlockType Inport Name "Qdot" Position [75, 298, 105, 312] Port "4" } Block { BlockType Inport Name "Q2dots" Position [70, 408, 100, 422] Port "5" } Block { BlockType MATLABFcn Name "J_HUM" Ports [1, 1] Position [145, 72, 200, 98] MATLABFcn "J_HUM" OutputDimensions "4" } Block { BlockType Derivative Name "J_HUMdot" Position [280, 125, 310, 155] } Block { BlockType MATLABFcn Name "J_MIT" Ports [1, 1] Position [130, 182, 185, 208] MATLABFcn "J_MIT" OutputDimensions "4" } Block { BlockType Derivative Name "J_MITdot" Position [285, 235, 315, 265] } Block { BlockType Mux Name "Mux" Ports [7, 1] Position [565, 62, 580, 438] ShowName off Inputs "7" DisplayOption "bar" } Block { BlockType MATLABFcn Name "Theta2dots_" Ports [1, 1] Position [640, 218, 740, 282] MATLABFcn "theta2dots_HUM" OutputDimensions "2" } Block { BlockType Outport Name "Theta2dots" Position [830, 243, 860, 257] } Line { SrcBlock "Theta2dots_" SrcPort 1 DstBlock "Theta2dots" DstPort 1 } Line { SrcBlock "Q" SrcPort 1 DstBlock "J_MIT" DstPort 1 } Line { SrcBlock "J_MIT" SrcPort 1 Points [0, 0; 25, 0] Branch { Points [0, 55] DstBlock "J_MITdot" DstPort 1 } Branch { DstBlock "Mux" DstPort 3 } } Line { SrcBlock "J_MITdot" SrcPort 1 DstBlock "Mux" DstPort 4 } Line { SrcBlock "Theta" SrcPort 1 DstBlock "J_HUM" DstPort 1 } Line { SrcBlock "J_HUM" SrcPort 1 Points [0, 0; 20, 0] Branch { Points [0, 55] DstBlock "J_HUMdot" DstPort 1 } Branch { DstBlock "Mux" DstPort 1 } } Line { SrcBlock "J_HUMdot" SrcPort 1 DstBlock "Mux" DstPort 2 } Line { SrcBlock "Qdot" SrcPort 1 DstBlock "Mux" DstPort 5 } Line { SrcBlock "Thetadot" SrcPort 1 DstBlock "Mux" DstPort 6 } Line { SrcBlock "Q2dots" SrcPort 1 DstBlock "Mux" DstPort 7 } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Theta2dots_" DstPort 1 } } } Block { BlockType SubSystem Name "Thetadot" Ports [2, 1] Position [385, 217, 455, 313] BackgroundColor "green" RTWSystemCode "Auto" System { Name "Thetadot" Location [2, 82, 1014, 718] Open on ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Theta" Position [220, 198, 250, 212] } Block { BlockType Inport Name "XYdot" Position [220, 238, 250, 252] Port "2" } Block { BlockType MATLABFcn Name "MATLAB Fcn1" Ports [1, 1] Position [410, 193, 510, 257] MATLABFcn "thetadot_HUM" OutputDimensions "2" } Block { BlockType Mux Name "Mux" Ports [2, 1] Position [355, 183, 365, 267] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Outport Name "Thetadot" Position [585, 218, 615, 232] } Line { SrcBlock "XYdot" SrcPort 1 DstBlock "Mux" DstPort 2 } Line { SrcBlock "Theta" SrcPort 1 DstBlock "Mux" DstPort 1 } Line { SrcBlock "Mux" SrcPort 1 DstBlock "MATLAB Fcn1" DstPort 1 } Line { SrcBlock "MATLAB Fcn1" SrcPort 1 DstBlock "Thetadot" DstPort 1 } } } Block { BlockType MATLABFcn Name "XYdot" Ports [1, 1] Position [175, 90, 275, 120] MATLABFcn "XYdot" OutputDimensions "2" } Block { BlockType Outport Name "F_HUM" Position [550, 585, 580, 595] Orientation "left" NamePlacement "alternate" } Block { BlockType Outport Name "Theta" Position [170, 380, 200, 390] Port "2" } Line { SrcBlock "XY" SrcPort 1 DstBlock "Theta1" DstPort 1 } Line { SrcBlock "XYdot" SrcPort 1 Points [0, 0; 15, 0] Branch { DstBlock "Theta1" DstPort 2 } Branch { Points [0, 185] DstBlock "Thetadot" DstPort 2 } } Line { SrcBlock "Mux2" SrcPort 1 DstBlock "XYdot" DstPort 1 } Line { SrcBlock "Q" SrcPort 1 Points [55, 0] Branch { DstBlock "Mux2" DstPort 1 } Branch { Points [0, 380] DstBlock "Theta2dots" DstPort 3 } } Line { SrcBlock "Qdot" SrcPort 1 Points [30, 0] Branch { Points [0, -65] DstBlock "Mux2" DstPort 2 } Branch { Points [0, 325] DstBlock "Theta2dots" DstPort 4 } } Line { SrcBlock "Theta1" SrcPort 1 Points [0, 0; 30, 0] Branch { Points [0, 95; -135, 0; 0, 65] Branch { DstBlock "Thetadot" DstPort 1 } Branch { Points [0, 205] Branch { DstBlock "Theta2dots" DstPort 2 } Branch { Points [-210, 0; 0, -60] DstBlock "Theta" DstPort 1 } } } Branch { Points [110, 0] Branch { Points [0, 135; 50, 0] Branch { DstBlock "Mux1" DstPort 1 } Branch { Points [0, 190] DstBlock "Human motor control" DstPort 1 } } Branch { Points [370, 0; 0, 490] DstBlock "Mux3" DstPort 1 } } } Line { SrcBlock "Thetadot" SrcPort 1 Points [35, 0] Branch { Points [0, 85; -100, 0] DstBlock "Theta2dots" DstPort 1 } Branch { Points [140, 0] Branch { DstBlock "Mux1" DstPort 2 } Branch { Points [0, 195] DstBlock "Human motor control" DstPort 2 } } } Line { SrcBlock "Theta2dots" SrcPort 1 Points [95, 0; 0, -160] DstBlock "Mux1" DstPort 3 } Line { SrcBlock "Q2dots" SrcPort 1 DstBlock "Theta2dots" DstPort 5 } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "Human arm dynamics" DstPort 1 } Line { SrcBlock "Human arm dynamics" SrcPort 1 Points [60, 0] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "F_HUM1" SrcPort 1 DstBlock "F_HUM" DstPort 1 } Line { SrcBlock "Mux3" SrcPort 1 DstBlock "F_HUM1" DstPort 1 } Line { SrcBlock "Sum1" SrcPort 1 Points [0, 250] DstBlock "Mux3" DstPort 2 } Line { SrcBlock "Human motor control" SrcPort 1 Points [65, 0] DstBlock "Sum1" DstPort 2 } Annotation { Name "Thetadot" Position [540, 255] } Annotation { Name "Theta2dots" Position [563, 461] } Annotation { Name "J'_HUM*F_HUM" Position [881, 616] } Annotation { Name "Theta" Position [875, 562] } Annotation { Name "Theta" Position [548, 70] } } } Block { BlockType SubSystem Name "MIT MANUS ROBOT\n& CONTROLLER" Ports [2, 4] Position [460, 178, 560, 357] RTWSystemCode "Auto" System { Name "MIT MANUS ROBOT\n& CONTROLLER" Location [-12, 72, 1381, 733] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "F_HUM" Position [525, 588, 555, 602] } Block { BlockType Inport Name "Theta" Position [620, 138, 650, 152] Port "2" } Block { BlockType MATLABFcn Name "Animation" Ports [1, 1] Position [745, 100, 805, 130] MATLABFcn "animation" OutputDimensions "2" } Block { BlockType Clock Name "Clock" Position [530, 95, 550, 115] Decimation "10" } Block { BlockType MATLABFcn Name "External obstacle\ninteraction force" Ports [1, 1] Position [1135, 430, 1235, 460] Orientation "left" MATLABFcn "Fsensor" OutputDimensions "2" } Block { BlockType SubSystem Name "Inverse\nKinematics" Ports [2, 2] Position [295, 135, 380, 250] BackgroundColor "[1.000000, 0.501961, 0.501961]" RTWSystemCode "Auto" System { Name "Inverse\nKinematics" Location [140, 101, 1152, 737] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" Block { BlockType Inport Name "XYd" Position [30, 178, 60, 192] } Block { BlockType Inport Name "XYddot" Position [30, 238, 60, 252] Port "2" } Block { BlockType Demux Name "Demux" Ports [1, 2] Position [550, 145, 560, 220] BackgroundColor "black" ShowName off Outputs "2" } Block { BlockType Demux Name "Demux1" Ports [1, 2] Position [245, 156, 250, 214] BackgroundColor "black" ShowName off Outputs "2" } Block { BlockType Demux Name "Demux2" Ports [1, 2] Position [245, 216, 250, 274] BackgroundColor "black" ShowName off Outputs "2" } Block { BlockType MATLABFcn Name "Inverse kinematics\nof the MIT-MANUS ro" "bot" Ports [1, 1] Position [395, 153, 495, 217] MATLABFcn "inverse_MIT" OutputDimensions "2" } Block { BlockType Mux Name "Mux" Ports [6, 1] Position [345, 96, 355, 274] ShowName off Inputs "6" DisplayOption "bar" } Block { BlockType Mux Name "Mux1" Ports [2, 1] Position [900, 161, 905, 199] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Integrator Name "Qd1" Ports [1, 1] Position [650, 119, 680, 151] InitialCondition "5.8119" } Block { BlockType Integrator Name "Qd2" Ports [1, 1] Position [645, 214, 675, 246] InitialCondition "3.9951" } Block { BlockType Outport Name "Qd" Position [970, 173, 1000, 187] } Block { BlockType Outport Name "Qddot" Position [840, 328, 870, 342] Port "2" } Line { SrcBlock "Demux2" SrcPort 2 DstBlock "Mux" DstPort 6 } Line { SrcBlock "Demux2" SrcPort 1 DstBlock "Mux" DstPort 5 } Line { SrcBlock "XYddot" SrcPort 1 DstBlock "Demux2" DstPort 1 } Line { SrcBlock "XYd" SrcPort 1 DstBlock "Demux1" DstPort 1 } Line { SrcBlock "Demux1" SrcPort 2 DstBlock "Mux" DstPort 4 } Line { SrcBlock "Demux1" SrcPort 1 DstBlock "Mux" DstPort 3 } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "Qd" DstPort 1 } Line { SrcBlock "Qd1" SrcPort 1 Points [0, -5; 20, 0] Branch { Points [180, 0] DstBlock "Mux1" DstPort 1 } Branch { Points [0, -75; -395, 0; 0, 55] DstBlock "Mux" DstPort 1 } } Line { SrcBlock "Qd2" SrcPort 1 Points [95, 0] Branch { Points [110, 0] DstBlock "Mux1" DstPort 2 } Branch { Points [0, -210; -510, 0; 0, 120] DstBlock "Mux" DstPort 2 } } Line { SrcBlock "Demux" SrcPort 2 Points [35, 0; 0, 30] DstBlock "Qd2" DstPort 1 } Line { SrcBlock "Demux" SrcPort 1 Points [35, 0; 0, -30] DstBlock "Qd1" DstPort 1 } Line { SrcBlock "Inverse kinematics\nof the MIT-MANUS ro" "bot" SrcPort 1 Points [10, 0] Branch { DstBlock "Demux" DstPort 1 } Branch { Points [0, 150] DstBlock "Qddot" DstPort 1 } } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Inverse kinematics\nof the MIT-MANUS ro" "bot" DstPort 1 } } } Block { BlockType Gain Name "Kd" Position [465, 405, 495, 435] Orientation "up" Gain "[5 0;0 5]" Multiplication "Matrix(K*u)" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Kp" Position [380, 340, 410, 370] Gain "[100 0;0 100]" Multiplication "Matrix(K*u)" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType SubSystem Name "MIT-MANUS ROBOT" Ports [1, 5] Position [720, 261, 845, 419] RTWSystemCode "Auto" System { Name "MIT-MANUS ROBOT" Location [201, 82, 1221, 718] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "tau" Position [565, 73, 595, 87] } Block { BlockType MATLABFcn Name "C*Qdot" Ports [1, 1] Position [480, 125, 540, 155] MATLABFcn "C_Qdot_MIT" OutputDimensions "2" } Block { BlockType MATLABFcn Name "End-effector position" Ports [1, 1] Position [685, 50, 745, 80] MATLABFcn "kin_MIT" OutputDimensions "2" } Block { BlockType Integrator Name "Initial angular\n postion" Ports [1, 1] Position [265, 95, 295, 125] InitialCondition "[5.8119;3.9951]" } Block { BlockType Integrator Name "Initial angular\nvelocity" Ports [1, 1] Position [95, 95, 125, 125] InitialCondition "[0;0]" } Block { BlockType MATLABFcn Name "J*Qdot" Ports [1, 1] Position [505, 380, 565, 410] MATLABFcn "XYdot" OutputDimensions "2" } Block { BlockType Mux Name "Mux" Ports [2, 1] Position [400, 79, 415, 201] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux1" Ports [2, 1] Position [335, 204, 340, 271] Orientation "left" NamePlacement "alternate" ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType MATLABFcn Name "Q2dots_" Ports [1, 1] Position [220, 225, 280, 255] Orientation "left" MATLABFcn "Q2dots_MIT" OutputDimensions "2" } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [615, 130, 635, 150] ShowName off IconShape "round" Inputs "+-|" InputSameDT off OutDataTypeMode "Inherit via internal rule" } Block { BlockType Outport Name "Q" Position [415, 28, 445, 42] } Block { BlockType Outport Name "XY" Position [825, 58, 855, 72] Port "2" } Block { BlockType Outport Name "XYdot" Position [655, 388, 685, 402] Port "3" } Block { BlockType Outport Name "Qdot" Position [185, 28, 215, 42] Port "4" } Block { BlockType Outport Name "Q2dots" Position [200, 313, 230, 327] Port "5" } Line { SrcBlock "Q2dots_" SrcPort 1 Points [-40, 0] Branch { Points [-145, 0; 0, -130] DstBlock "Initial angular\nvelocity" DstPort 1 } Branch { Points [0, 80] DstBlock "Q2dots" DstPort 1 } } Line { SrcBlock "Initial angular\nvelocity" SrcPort 1 Points [25, 0] Branch { Points [65, 0] Branch { DstBlock "Initial angular\n postion" DstPort 1 } Branch { Points [0, 60] DstBlock "Mux" DstPort 2 } } Branch { Points [0, -75] DstBlock "Qdot" DstPort 1 } } Line { SrcBlock "Mux" SrcPort 1 Points [20, 0] Branch { DstBlock "C*Qdot" DstPort 1 } Branch { Points [0, 255] DstBlock "J*Qdot" DstPort 1 } } Line { SrcBlock "Initial angular\n postion" SrcPort 1 Points [0, 0; 65, 0] Branch { DstBlock "Mux" DstPort 1 } Branch { Points [0, 110] DstBlock "Mux1" DstPort 1 } Branch { Points [0, -45] Branch { Points [0, -30] DstBlock "Q" DstPort 1 } Branch { DstBlock "End-effector position" DstPort 1 } } } Line { SrcBlock "C*Qdot" SrcPort 1 DstBlock "Sum" DstPort 2 } Line { SrcBlock "tau" SrcPort 1 Points [25, 0] DstBlock "Sum" DstPort 1 } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "Q2dots_" DstPort 1 } Line { SrcBlock "Sum" SrcPort 1 Points [15, 0; 0, 115] DstBlock "Mux1" DstPort 2 } Line { SrcBlock "End-effector position" SrcPort 1 DstBlock "XY" DstPort 1 } Line { SrcBlock "J*Qdot" SrcPort 1 Points [0, 0] DstBlock "XYdot" DstPort 1 } Annotation { Name "Qdot" Position [201, 101] } Annotation { Name "Q" Position [321, 102] } Annotation { Name "Q2dots" Position [56, 99] } } } Block { BlockType Mux Name "Mux" Ports [2, 1] Position [595, 301, 605, 374] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux1" Ports [2, 1] Position [1250, 425, 1255, 465] Orientation "left" NamePlacement "alternate" ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux2" Ports [4, 1] Position [695, 78, 705, 152] ShowName off DisplayOption "bar" } Block { BlockType Constant Name "Pf" Position [60, 361, 75, 379] Value "[-0.14*cos(pi/4);-0.14*sin(pi/4)]" } Block { BlockType Constant Name "Pi" Position [25, 336, 40, 354] NamePlacement "alternate" Value "[0;0]" } Block { BlockType Scope Name "Scope3" Ports [1] Position [870, 99, 900, 131] Floating off Location [5, 52, 1277, 757] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } YMin "-1" YMax "1" SaveName "ScopeData3" DataFormat "StructureWithTime" LimitDataPoints off SampleTime "0" } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [310, 345, 330, 365] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [470, 345, 490, 365] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum2" Ports [2, 1] Position [700, 550, 720, 570] Orientation "left" NamePlacement "alternate" ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Sum3" Ports [2, 1] Position [540, 345, 560, 365] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType MATLABFcn Name "Torques" Ports [1, 1] Position [635, 325, 695, 355] MATLABFcn "Jt_F" OutputDimensions "2" } Block { BlockType SubSystem Name "Trajectory planner" Ports [4, 2] Position [120, 328, 190, 437] BackgroundColor "green" RTWSystemCode "Auto" MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" System { Name "Trajectory planner" Location [2, 82, 1014, 718] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "Pi" Position [70, 28, 100, 42] } Block { BlockType Inport Name "Pf" Position [25, 53, 55, 67] Port "2" } Block { BlockType Inport Name "ti" Position [70, 78, 100, 92] Port "3" } Block { BlockType Inport Name "tf" Position [25, 103, 55, 117] Port "4" } Block { BlockType Clock Name "Clock" Position [195, 185, 215, 205] Decimation "10" } Block { BlockType Demux Name "Demux" Ports [1, 4] Position [490, 31, 500, 134] BackgroundColor "black" ShowName off } Block { BlockType MATLABFcn Name "MATLAB Fcn" Ports [1, 1] Position [295, 55, 410, 115] MATLABFcn "planner_MIT" OutputDimensions "4" } Block { BlockType Mux Name "Mux" Ports [5, 1] Position [240, 25, 255, 145] ShowName off Inputs "5" DisplayOption "bar" } Block { BlockType Mux Name "Mux1" Ports [2, 1] Position [695, 82, 700, 133] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Mux Name "Mux2" Ports [2, 1] Position [695, 32, 700, 83] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Outport Name "XYd" Position [755, 53, 785, 67] } Block { BlockType Outport Name "XYddot" Position [755, 103, 785, 117] Port "2" } Line { SrcBlock "Mux" SrcPort 1 DstBlock "MATLAB Fcn" DstPort 1 } Line { SrcBlock "Clock" SrcPort 1 Points [5, 0] DstBlock "Mux" DstPort 5 } Line { SrcBlock "MATLAB Fcn" SrcPort 1 DstBlock "Demux" DstPort 1 } Line { SrcBlock "Demux" SrcPort 1 DstBlock "Mux2" DstPort 1 } Line { SrcBlock "Demux" SrcPort 2 DstBlock "Mux2" DstPort 2 } Line { SrcBlock "Pi" SrcPort 1 DstBlock "Mux" DstPort 1 } Line { SrcBlock "Pf" SrcPort 1 DstBlock "Mux" DstPort 2 } Line { SrcBlock "ti" SrcPort 1 DstBlock "Mux" DstPort 3 } Line { SrcBlock "tf" SrcPort 1 DstBlock "Mux" DstPort 4 } Line { SrcBlock "Demux" SrcPort 3 DstBlock "Mux1" DstPort 1 } Line { SrcBlock "Mux2" SrcPort 1 DstBlock "XYd" DstPort 1 } Line { SrcBlock "Demux" SrcPort 4 DstBlock "Mux1" DstPort 2 } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "XYddot" DstPort 1 } } } Block { BlockType Constant Name "obstacle position" Position [1330, 440, 1360, 470] Orientation "left" Value "[inf;inf]" } Block { BlockType Constant Name "tf" Position [60, 411, 75, 429] Value "2" } Block { BlockType Constant Name "ti" Position [25, 386, 40, 404] Value "0" } Block { BlockType Outport Name "Q" Position [1110, 273, 1140, 287] } Block { BlockType Outport Name "Qdot" Position [995, 363, 1025, 377] Port "2" } Block { BlockType Outport Name "Q2dots" Position [945, 393, 975, 407] Port "3" } Block { BlockType Outport Name "XY" Position [1210, 353, 1240, 367] Port "4" } Line { SrcBlock "Pi" SrcPort 1 DstBlock "Trajectory planner" DstPort 1 } Line { SrcBlock "Pf" SrcPort 1 DstBlock "Trajectory planner" DstPort 2 } Line { SrcBlock "ti" SrcPort 1 DstBlock "Trajectory planner" DstPort 3 } Line { SrcBlock "tf" SrcPort 1 DstBlock "Trajectory planner" DstPort 4 } Line { SrcBlock "MIT-MANUS ROBOT" SrcPort 2 Points [230, 0] Branch { Points [0, 225; -760, 0] DstBlock "Sum" DstPort 2 } Branch { Points [90, 0] Branch { Points [120, 0; 0, 125] DstBlock "Mux1" DstPort 1 } Branch { Points [0, 50] DstBlock "XY" DstPort 1 } } } Line { SrcBlock "Trajectory planner" SrcPort 1 Points [25, 0] Branch { DstBlock "Sum" DstPort 1 } Branch { Points [0, -190] DstBlock "Inverse\nKinematics" DstPort 1 } } Line { SrcBlock "Sum" SrcPort 1 DstBlock "Kp" DstPort 1 } Line { SrcBlock "MIT-MANUS ROBOT" SrcPort 3 Points [200, 0; 0, 150; -570, 0] DstBlock "Kd" DstPort 1 } Line { SrcBlock "Kp" SrcPort 1 DstBlock "Sum1" DstPort 1 } Line { SrcBlock "Kd" SrcPort 1 DstBlock "Sum1" DstPort 2 } Line { SrcBlock "MIT-MANUS ROBOT" SrcPort 1 Points [15, 0] Branch { Points [0, -40; -260, 0] Branch { Points [-85, 0; 0, 80] DstBlock "Mux" DstPort 1 } Branch { Points [0, -115] DstBlock "Mux2" DstPort 3 } } Branch { DstBlock "Q" DstPort 1 } } Line { SrcBlock "Torques" SrcPort 1 DstBlock "MIT-MANUS ROBOT" DstPort 1 } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Torques" DstPort 1 } Line { SrcBlock "External obstacle\ninteraction force" SrcPort 1 Points [-25, 0; 0, 115] DstBlock "Sum2" DstPort 1 } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "External obstacle\ninteraction force" DstPort 1 } Line { SrcBlock "obstacle position" SrcPort 1 Points [-10, 0] Branch { DstBlock "Mux1" DstPort 2 } Branch { Points [0, -420; -710, 0; 0, 50] DstBlock "Mux2" DstPort 1 } } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Sum3" DstPort 1 } Line { SrcBlock "Sum3" SrcPort 1 DstBlock "Mux" DstPort 2 } Line { SrcBlock "Mux2" SrcPort 1 DstBlock "Animation" DstPort 1 } Line { SrcBlock "Clock" SrcPort 1 DstBlock "Mux2" DstPort 2 } Line { SrcBlock "MIT-MANUS ROBOT" SrcPort 4 DstBlock "Qdot" DstPort 1 } Line { SrcBlock "MIT-MANUS ROBOT" SrcPort 5 DstBlock "Q2dots" DstPort 1 } Line { SrcBlock "F_HUM" SrcPort 1 Points [150, 0] DstBlock "Sum2" DstPort 2 } Line { SrcBlock "Sum2" SrcPort 1 Points [-145, 0] DstBlock "Sum3" DstPort 2 } Line { SrcBlock "Theta" SrcPort 1 DstBlock "Mux2" DstPort 4 } Line { SrcBlock "Animation" SrcPort 1 DstBlock "Scope3" DstPort 1 } Line { SrcBlock "Trajectory planner" SrcPort 2 Points [55, 0; 0, -190] DstBlock "Inverse\nKinematics" DstPort 2 } } } Line { SrcBlock "MIT MANUS ROBOT\n& CONTROLLER" SrcPort 4 DstBlock "HUMAN ARM" DstPort 4 } Line { SrcBlock "MIT MANUS ROBOT\n& CONTROLLER" SrcPort 3 DstBlock "HUMAN ARM" DstPort 3 } Line { SrcBlock "MIT MANUS ROBOT\n& CONTROLLER" SrcPort 2 DstBlock "HUMAN ARM" DstPort 2 } Line { SrcBlock "MIT MANUS ROBOT\n& CONTROLLER" SrcPort 1 DstBlock "HUMAN ARM" DstPort 1 } Line { SrcBlock "HUMAN ARM" SrcPort 1 Points [60, 0; 0, 225; -500, 0; 0, -225] DstBlock "MIT MANUS ROBOT\n& CONTROLLER" DstPort 1 } Line { SrcBlock "HUMAN ARM" SrcPort 2 Points [40, 0; 0, 100; -450, 0; 0, -100] DstBlock "MIT MANUS ROBOT\n& CONTROLLER" DstPort 2 } } }