diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..dad38ec527fe3c13371df8625460fd062bdf6aee
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+Autotuners/slprj*
diff --git a/Autotuners/autotuner_tito_2012a.mdl b/Autotuners/autotuner_tito_2012a.mdl
new file mode 100644
index 0000000000000000000000000000000000000000..4163f067d7ee7fa600e8c001cda5060cf6ba8131
--- /dev/null
+++ b/Autotuners/autotuner_tito_2012a.mdl
@@ -0,0 +1,3964 @@
+Model {
+  Name			  "autotuner_tito_2012a"
+  Version		  7.9
+  MdlSubVersion		  0
+  GraphicalInterface {
+    NumRootInports	    0
+    NumRootOutports	    0
+    ParameterArgumentNames  ""
+    ComputedModelVersion    "1.665"
+    NumModelReferences	    0
+    NumTestPointedSignals   0
+  }
+  SavedCharacterEncoding  "UTF-8"
+  SaveDefaultBlockParams  on
+  ScopeRefreshTime	  0.035000
+  OverrideScopeRefreshTime off
+  DisableAllScopes	  off
+  DataTypeOverride	  "UseLocalSettings"
+  DataTypeOverrideAppliesTo "AllNumericTypes"
+  MinMaxOverflowLogging	  "UseLocalSettings"
+  MinMaxOverflowArchiveMode "Overwrite"
+  FPTRunName		  "Run 1"
+  MaxMDLFileLineLength	  120
+  Created		  "Sun Jun 12 02:17:00 2005"
+  Creator		  "josefinb"
+  UpdateHistory		  "UpdateHistoryNever"
+  ModifiedByFormat	  "%<Auto>"
+  LastModifiedBy	  "josefinb"
+  ModifiedDateFormat	  "%<Auto>"
+  LastModifiedDate	  "Fri Dec 08 13:12:03 2017"
+  RTWModifiedTimeStamp	  434639519
+  ModelVersionFormat	  "1.%<AutoIncrement:665>"
+  ConfigurationManager	  "none"
+  SampleTimeColors	  off
+  SampleTimeAnnotations	  off
+  LibraryLinkDisplay	  "none"
+  WideLines		  off
+  ShowLineDimensions	  on
+  ShowPortDataTypes	  off
+  ShowDesignRanges	  off
+  ShowLoopsOnError	  on
+  IgnoreBidirectionalLines off
+  ShowStorageClass	  off
+  ShowTestPointIcons	  on
+  ShowSignalResolutionIcons on
+  ShowViewerIcons	  on
+  SortedOrder		  off
+  ExecutionContextIcon	  on
+  ShowLinearizationAnnotations on
+  BlockNameDataTip	  off
+  BlockParametersDataTip  on
+  BlockDescriptionStringDataTip	off
+  ToolBar		  on
+  StatusBar		  on
+  BrowserShowLibraryLinks off
+  BrowserLookUnderMasks	  off
+  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
+  CovForceBlockReductionOff on
+  covSaveCumulativeToWorkspaceVar on
+  CovSaveSingleToWorkspaceVar on
+  CovCumulativeVarName	  "covCumulativeData"
+  CovCumulativeReport	  off
+  CovReportOnPause	  on
+  CovModelRefEnable	  "Off"
+  CovExternalEMLEnable	  off
+  ExtModeBatchMode	  off
+  ExtModeEnableFloating	  on
+  ExtModeTrigType	  "manual"
+  ExtModeTrigMode	  "oneshot"
+  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	  off
+  ExtModeSkipDownloadWhenConnect off
+  ExtModeLogAll		  on
+  ExtModeAutoUpdateStatusClock on
+  BufferReuse		  on
+  ShowModelReferenceBlockVersion off
+  ShowModelReferenceBlockIO off
+  Array {
+    Type		    "Handle"
+    Dimension		    1
+    Simulink.ConfigSet {
+      $ObjectID		      1
+      Version		      "1.12.0"
+      Array {
+	Type			"Handle"
+	Dimension		8
+	Simulink.SolverCC {
+	  $ObjectID		  2
+	  Version		  "1.12.0"
+	  StartTime		  "0.0"
+	  StopTime		  "simopt.Tf"
+	  AbsTol		  "auto"
+	  FixedStep		  "simopt.h"
+	  InitialStep		  "auto"
+	  MaxNumMinSteps	  "-1"
+	  MaxOrder		  5
+	  ZcThreshold		  "auto"
+	  ConsecutiveZCsStepRelTol "10*128*eps"
+	  MaxConsecutiveZCs	  "1000"
+	  ExtrapolationOrder	  4
+	  NumberNewtonIterations  1
+	  MaxStep		  "auto"
+	  MinStep		  "auto"
+	  MaxConsecutiveMinStep	  "1"
+	  RelTol		  "1e-3"
+	  SolverMode		  "Auto"
+	  EnableConcurrentExecution off
+	  ConcurrentTasks	  off
+	  Solver		  "ode3"
+	  SolverName		  "ode3"
+	  SolverJacobianMethodControl "auto"
+	  ShapePreserveControl	  "DisableAll"
+	  ZeroCrossControl	  "UseLocalSettings"
+	  ZeroCrossAlgorithm	  "Nonadaptive"
+	  AlgebraicLoopSolver	  "TrustRegion"
+	  SolverResetMethod	  "Fast"
+	  PositivePriorityOrder	  off
+	  AutoInsertRateTranBlk	  off
+	  SampleTimeConstraint	  "Unconstrained"
+	  InsertRTBMode		  "Whenever possible"
+	}
+	Simulink.DataIOCC {
+	  $ObjectID		  3
+	  Version		  "1.12.0"
+	  Decimation		  "1"
+	  ExternalInput		  "[t, u]"
+	  FinalStateName	  "xf"
+	  InitialState		  "x0"
+	  LimitDataPoints	  off
+	  MaxDataPoints		  "1000"
+	  LoadExternalInput	  off
+	  LoadInitialState	  off
+	  SaveFinalState	  off
+	  SaveCompleteFinalSimState on
+	  SaveFormat		  "Array"
+	  SignalLoggingSaveFormat "ModelDataLogs"
+	  SaveOutput		  on
+	  SaveState		  off
+	  SignalLogging		  on
+	  DSMLogging		  on
+	  InspectSignalLogs	  off
+	  SaveTime		  on
+	  ReturnWorkspaceOutputs  off
+	  StateSaveName		  "xout"
+	  TimeSaveName		  "tout"
+	  OutputSaveName	  "yout"
+	  SignalLoggingName	  "logsout"
+	  DSMLoggingName	  "dsmout"
+	  OutputOption		  "RefineOutputTimes"
+	  OutputTimes		  "[]"
+	  ReturnWorkspaceOutputsName "out"
+	  Refine		  "1"
+	}
+	Simulink.OptimizationCC {
+	  $ObjectID		  4
+	  Version		  "1.12.0"
+	  BlockReduction	  off
+	  BooleanDataType	  off
+	  ConditionallyExecuteInputs on
+	  InlineParams		  off
+	  UseIntDivNetSlope	  off
+	  UseFloatMulNetSlope	  off
+	  UseSpecifiedMinMax	  off
+	  InlineInvariantSignals  off
+	  OptimizeBlockIOStorage  on
+	  BufferReuse		  on
+	  EnhancedBackFolding	  off
+	  StrengthReduction	  off
+	  ExpressionFolding	  on
+	  BooleansAsBitfields	  off
+	  BitfieldContainerType	  "uint_T"
+	  EnableMemcpy		  on
+	  MemcpyThreshold	  64
+	  PassReuseOutputArgsAs	  "Structure reference"
+	  ExpressionDepthLimit	  2147483647
+	  FoldNonRolledExpr	  on
+	  LocalBlockOutputs	  on
+	  RollThreshold		  5
+	  SystemCodeInlineAuto	  off
+	  StateBitsets		  off
+	  DataBitsets		  off
+	  UseTempVars		  off
+	  ZeroExternalMemoryAtStartup on
+	  ZeroInternalMemoryAtStartup on
+	  InitFltsAndDblsToZero	  on
+	  NoFixptDivByZeroProtection off
+	  EfficientFloat2IntCast  off
+	  EfficientMapNaN2IntZero on
+	  OptimizeModelRefInitCode off
+	  LifeSpan		  "inf"
+	  MaxStackSize		  "Inherit from target"
+	  BufferReusableBoundary  on
+	  SimCompilerOptimization "Off"
+	  AccelVerboseBuild	  off
+	  ParallelExecutionInRapidAccelerator on
+	}
+	Simulink.DebuggingCC {
+	  $ObjectID		  5
+	  Version		  "1.12.0"
+	  RTPrefix		  "error"
+	  ConsistencyChecking	  "none"
+	  ArrayBoundsChecking	  "none"
+	  SignalInfNanChecking	  "none"
+	  SignalRangeChecking	  "none"
+	  ReadBeforeWriteMsg	  "UseLocalSettings"
+	  WriteAfterWriteMsg	  "UseLocalSettings"
+	  WriteAfterReadMsg	  "UseLocalSettings"
+	  AlgebraicLoopMsg	  "warning"
+	  ArtificialAlgebraicLoopMsg "warning"
+	  SaveWithDisabledLinksMsg "warning"
+	  SaveWithParameterizedLinksMsg	"none"
+	  CheckSSInitialOutputMsg on
+	  UnderspecifiedInitializationDetection	"Classic"
+	  MergeDetectMultiDrivingBlocksExec "none"
+	  CheckExecutionContextPreStartOutputMsg off
+	  CheckExecutionContextRuntimeOutputMsg	off
+	  SignalResolutionControl "TryResolveAllWithWarning"
+	  BlockPriorityViolationMsg "warning"
+	  MinStepSizeMsg	  "warning"
+	  TimeAdjustmentMsg	  "none"
+	  MaxConsecutiveZCsMsg	  "error"
+	  MaskedZcDiagnostic	  "warning"
+	  IgnoredZcDiagnostic	  "warning"
+	  SolverPrmCheckMsg	  "none"
+	  InheritedTsInSrcMsg	  "warning"
+	  DiscreteInheritContinuousMsg "warning"
+	  MultiTaskDSMMsg	  "warning"
+	  MultiTaskCondExecSysMsg "none"
+	  MultiTaskRateTransMsg	  "error"
+	  SingleTaskRateTransMsg  "none"
+	  TasksWithSamePriorityMsg "warning"
+	  SigSpecEnsureSampleTimeMsg "warning"
+	  CheckMatrixSingularityMsg "none"
+	  IntegerOverflowMsg	  "warning"
+	  Int32ToFloatConvMsg	  "warning"
+	  ParameterDowncastMsg	  "error"
+	  ParameterOverflowMsg	  "error"
+	  ParameterUnderflowMsg	  "none"
+	  ParameterPrecisionLossMsg "warning"
+	  ParameterTunabilityLossMsg "warning"
+	  FixptConstUnderflowMsg  "none"
+	  FixptConstOverflowMsg	  "none"
+	  FixptConstPrecisionLossMsg "none"
+	  UnderSpecifiedDataTypeMsg "none"
+	  UnnecessaryDatatypeConvMsg "none"
+	  VectorMatrixConversionMsg "none"
+	  InvalidFcnCallConnMsg	  "error"
+	  FcnCallInpInsideContextMsg "Use local settings"
+	  SignalLabelMismatchMsg  "none"
+	  UnconnectedInputMsg	  "warning"
+	  UnconnectedOutputMsg	  "warning"
+	  UnconnectedLineMsg	  "warning"
+	  SFcnCompatibilityMsg	  "none"
+	  FrameProcessingCompatibilityMsg "error"
+	  UniqueDataStoreMsg	  "none"
+	  BusObjectLabelMismatch  "warning"
+	  RootOutportRequireBusObject "warning"
+	  AssertControl		  "UseLocalSettings"
+	  EnableOverflowDetection off
+	  ModelReferenceIOMsg	  "none"
+	  ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error"
+	  ModelReferenceVersionMismatchMessage "none"
+	  ModelReferenceIOMismatchMessage "none"
+	  ModelReferenceCSMismatchMessage "none"
+	  UnknownTsInhSupMsg	  "warning"
+	  ModelReferenceDataLoggingMessage "warning"
+	  ModelReferenceSymbolNameMessage "warning"
+	  ModelReferenceExtraNoncontSigs "error"
+	  StateNameClashWarn	  "warning"
+	  SimStateInterfaceChecksumMismatchMsg "warning"
+	  SimStateOlderReleaseMsg "error"
+	  InitInArrayFormatMsg	  "warning"
+	  StrictBusMsg		  "ErrorLevel1"
+	  BusNameAdapt		  "WarnAndRepair"
+	  NonBusSignalsTreatedAsBus "none"
+	  LoggingUnavailableSignals "error"
+	  BlockIODiagnostic	  "none"
+	  SFUnusedDataAndEventsDiag "warning"
+	  SFUnexpectedBacktrackingDiag "warning"
+	  SFInvalidInputDataAccessInChartInitDiag "warning"
+	  SFNoUnconditionalDefaultTransitionDiag "warning"
+	  SFTransitionOutsideNaturalParentDiag "warning"
+	  SFUnconditionalTransitionShadowingDiag "warning"
+	}
+	Simulink.HardwareCC {
+	  $ObjectID		  6
+	  Version		  "1.12.0"
+	  ProdBitPerChar	  8
+	  ProdBitPerShort	  16
+	  ProdBitPerInt		  32
+	  ProdBitPerLong	  32
+	  ProdBitPerFloat	  32
+	  ProdBitPerDouble	  64
+	  ProdBitPerPointer	  32
+	  ProdLargestAtomicInteger "Char"
+	  ProdLargestAtomicFloat  "None"
+	  ProdIntDivRoundTo	  "Undefined"
+	  ProdEndianess		  "Unspecified"
+	  ProdWordSize		  32
+	  ProdShiftRightIntArith  on
+	  ProdHWDeviceType	  "32-bit Generic"
+	  TargetBitPerChar	  8
+	  TargetBitPerShort	  16
+	  TargetBitPerInt	  32
+	  TargetBitPerLong	  32
+	  TargetBitPerFloat	  32
+	  TargetBitPerDouble	  64
+	  TargetBitPerPointer	  32
+	  TargetLargestAtomicInteger "Char"
+	  TargetLargestAtomicFloat "None"
+	  TargetShiftRightIntArith on
+	  TargetIntDivRoundTo	  "Undefined"
+	  TargetEndianess	  "Unspecified"
+	  TargetWordSize	  32
+	  TargetTypeEmulationWarnSuppressLevel 0
+	  TargetPreprocMaxBitsSint 32
+	  TargetPreprocMaxBitsUint 32
+	  TargetHWDeviceType	  "Specified"
+	  TargetUnknown		  on
+	  ProdEqTarget		  on
+	}
+	Simulink.ModelReferenceCC {
+	  $ObjectID		  7
+	  Version		  "1.12.0"
+	  UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange"
+	  CheckModelReferenceTargetMessage "error"
+	  EnableParallelModelReferenceBuilds off
+	  ParallelModelReferenceErrorOnInvalidPool on
+	  ParallelModelReferenceMATLABWorkerInit "None"
+	  ModelReferenceNumInstancesAllowed "Multi"
+	  PropagateVarSize	  "Infer from blocks in model"
+	  ModelReferencePassRootInputsByReference on
+	  ModelReferenceMinAlgLoopOccurrences off
+	  PropagateSignalLabelsOutOfModel off
+	  SupportModelReferenceSimTargetCustomCode off
+	}
+	Simulink.SFSimCC {
+	  $ObjectID		  8
+	  Version		  "1.12.0"
+	  SFSimEnableDebug	  on
+	  SFSimOverflowDetection  on
+	  SFSimEcho		  on
+	  SimBlas		  on
+	  SimCtrlC		  on
+	  SimExtrinsic		  on
+	  SimIntegrity		  on
+	  SimUseLocalCustomCode	  off
+	  SimParseCustomCode	  on
+	  SimBuildMode		  "sf_incremental_build"
+	}
+	Simulink.RTWCC {
+	  $BackupClass		  "Simulink.RTWCC"
+	  $ObjectID		  9
+	  Version		  "1.12.0"
+	  SystemTargetFile	  "grt.tlc"
+	  GenCodeOnly		  off
+	  MakeCommand		  "make_rtw"
+	  GenerateMakefile	  on
+	  TemplateMakefile	  "grt_default_tmf"
+	  GenerateReport	  off
+	  SaveLog		  off
+	  RTWVerbose		  on
+	  RetainRTWFile		  off
+	  ProfileTLC		  off
+	  TLCDebug		  off
+	  TLCCoverage		  off
+	  TLCAssert		  off
+	  ProcessScriptMode	  "Default"
+	  ConfigurationMode	  "Optimized"
+	  ConfigAtBuild		  off
+	  RTWUseLocalCustomCode	  off
+	  RTWUseSimCustomCode	  off
+	  IncludeHyperlinkInReport off
+	  LaunchReport		  off
+	  TargetLang		  "C"
+	  IncludeBusHierarchyInRTWFileBlockHierarchyMap	off
+	  IncludeERTFirstTime	  off
+	  GenerateTraceInfo	  off
+	  GenerateTraceReport	  off
+	  GenerateTraceReportSl	  off
+	  GenerateTraceReportSf	  off
+	  GenerateTraceReportEml  off
+	  GenerateCodeInfo	  off
+	  GenerateWebview	  off
+	  GenerateCodeMetricsReport off
+	  GenerateCodeReplacementReport	off
+	  RTWCompilerOptimization "Off"
+	  CheckMdlBeforeBuild	  "Off"
+	  CustomRebuildMode	  "OnUpdate"
+	  Array {
+	    Type		    "Handle"
+	    Dimension		    2
+	    Simulink.CodeAppCC {
+	      $ObjectID		      10
+	      Version		      "1.12.0"
+	      ForceParamTrailComments off
+	      GenerateComments	      on
+	      IgnoreCustomStorageClasses on
+	      IgnoreTestpoints	      off
+	      IncHierarchyInIds	      off
+	      MaxIdLength	      31
+	      PreserveName	      off
+	      PreserveNameWithParent  off
+	      ShowEliminatedStatement off
+	      IncAutoGenComments      off
+	      SimulinkDataObjDesc     off
+	      SFDataObjDesc	      off
+	      MATLABFcnDesc	      off
+	      IncDataTypeInIds	      off
+	      MangleLength	      1
+	      CustomSymbolStrGlobalVar "$R$N$M"
+	      CustomSymbolStrType     "$N$R$M_T"
+	      CustomSymbolStrField    "$N$M"
+	      CustomSymbolStrFcn      "$R$N$M$F"
+	      CustomSymbolStrFcnArg   "rt$I$N$M"
+	      CustomSymbolStrBlkIO    "rtb_$N$M"
+	      CustomSymbolStrTmpVar   "$N$M"
+	      CustomSymbolStrMacro    "$R$N$M"
+	      DefineNamingRule	      "None"
+	      ParamNamingRule	      "None"
+	      SignalNamingRule	      "None"
+	      InsertBlockDesc	      off
+	      InsertPolySpaceComments off
+	      SimulinkBlockComments   on
+	      MATLABSourceComments    off
+	      EnableCustomComments    off
+	      InlinedPrmAccess	      "Literals"
+	      ReqsInCode	      off
+	      UseSimReservedNames     off
+	    }
+	    Simulink.GRTTargetCC {
+	      $BackupClass	      "Simulink.TargetCC"
+	      $ObjectID		      11
+	      Version		      "1.12.0"
+	      Array {
+		Type			"Cell"
+		Dimension		2
+		Cell			"MultiInstanceERTCode"
+		Cell			"CombineOutputUpdateFcns"
+		PropName		"DisabledProps"
+	      }
+	      TargetFcnLib	      "ansi_tfl_tmw.mat"
+	      TargetLibSuffix	      ""
+	      TargetPreCompLibLocation ""
+	      CodeReplacementLibrary  "C89/C90 (ANSI)"
+	      UtilityFuncGeneration   "Auto"
+	      ERTMultiwordTypeDef     "System defined"
+	      CodeExecutionProfiling  off
+	      ERTMultiwordLength      256
+	      MultiwordLength	      2048
+	      GenerateFullHeader      on
+	      GenerateSampleERTMain   off
+	      GenerateTestInterfaces  off
+	      IsPILTarget	      off
+	      ModelReferenceCompliant off
+	      ParMdlRefBuildCompliant on
+	      CompOptLevelCompliant   on
+	      ConcurrentExecutionCompliant on
+	      IncludeMdlTerminateFcn  on
+	      GeneratePreprocessorConditionals "Disable all"
+	      CombineOutputUpdateFcns off
+	      CombineSignalStateStructs	off
+	      SuppressErrorStatus     off
+	      ERTFirstTimeCompliant   off
+	      IncludeFileDelimiter    "Auto"
+	      ERTCustomFileBanners    off
+	      SupportAbsoluteTime     on
+	      LogVarNameModifier      "rt_"
+	      MatFileLogging	      off
+	      MultiInstanceERTCode    off
+	      SupportNonFinite	      on
+	      SupportComplex	      on
+	      PurelyIntegerCode	      off
+	      SupportContinuousTime   on
+	      SupportNonInlinedSFcns  on
+	      SupportVariableSizeSignals off
+	      EnableShiftOperators    on
+	      ParenthesesLevel	      "Nominal"
+	      PortableWordSizes	      off
+	      ModelStepFunctionPrototypeControlCompliant off
+	      CPPClassGenCompliant    off
+	      AutosarCompliant	      off
+	      GRTInterface	      on
+	      UseMalloc		      off
+	      ExtMode		      off
+	      ExtModeStaticAlloc      off
+	      ExtModeTesting	      off
+	      ExtModeStaticAllocSize  1000000
+	      ExtModeTransport	      0
+	      ExtModeMexFile	      "ext_comm"
+	      ExtModeIntrfLevel	      "Level1"
+	      RTWCAPISignals	      off
+	      RTWCAPIParams	      off
+	      RTWCAPIStates	      off
+	      RTWCAPIRootIO	      off
+	      GenerateASAP2	      off
+	    }
+	    PropName		    "Components"
+	  }
+	}
+	PropName		"Components"
+      }
+      Name		      "Configuration"
+      CurrentDlgPage	      "Solver"
+      ConfigPrmDlgPosition     [ 295, 27, 1148, 709 ] 
+    }
+    PropName		    "ConfigurationSets"
+  }
+  Simulink.ConfigSet {
+    $PropName		    "ActiveConfigurationSet"
+    $ObjectID		    1
+  }
+  ExplicitPartitioning	  off
+  BlockDefaults {
+    ForegroundColor	    "black"
+    BackgroundColor	    "white"
+    DropShadow		    off
+    NamePlacement	    "normal"
+    FontName		    "Helvetica"
+    FontSize		    10
+    FontWeight		    "normal"
+    FontAngle		    "normal"
+    ShowName		    on
+    BlockRotation	    0
+    BlockMirror		    off
+  }
+  AnnotationDefaults {
+    HorizontalAlignment	    "center"
+    VerticalAlignment	    "middle"
+    ForegroundColor	    "black"
+    BackgroundColor	    "white"
+    DropShadow		    off
+    FontName		    "Helvetica"
+    FontSize		    10
+    FontWeight		    "normal"
+    FontAngle		    "normal"
+    UseDisplayTextAsClickCallback off
+  }
+  LineDefaults {
+    FontName		    "Helvetica"
+    FontSize		    9
+    FontWeight		    "normal"
+    FontAngle		    "normal"
+  }
+  BlockParameterDefaults {
+    Block {
+      BlockType		      Constant
+      Value		      "1"
+      VectorParams1D	      on
+      SamplingMode	      "Sample based"
+      OutMin		      "[]"
+      OutMax		      "[]"
+      OutDataTypeStr	      "Inherit: Inherit from 'Constant value'"
+      LockScale		      off
+      SampleTime	      "inf"
+      FramePeriod	      "inf"
+      PreserveConstantTs      off
+    }
+    Block {
+      BlockType		      Demux
+      Outputs		      "4"
+      DisplayOption	      "none"
+      BusSelectionMode	      off
+    }
+    Block {
+      BlockType		      DigitalClock
+      SampleTime	      "1"
+    }
+    Block {
+      BlockType		      Inport
+      Port		      "1"
+      OutputFunctionCall      off
+      OutMin		      "[]"
+      OutMax		      "[]"
+      OutDataTypeStr	      "Inherit: auto"
+      LockScale		      off
+      BusOutputAsStruct	      off
+      PortDimensions	      "-1"
+      VarSizeSig	      "Inherit"
+      SampleTime	      "-1"
+      SignalType	      "auto"
+      SamplingMode	      "auto"
+      LatchByDelayingOutsideSignal off
+      LatchInputForFeedbackSignals off
+      Interpolate	      on
+    }
+    Block {
+      BlockType		      Mux
+      Inputs		      "4"
+      DisplayOption	      "none"
+      UseBusObject	      off
+      BusObject		      "BusObject"
+      NonVirtualBus	      off
+    }
+    Block {
+      BlockType		      Outport
+      Port		      "1"
+      OutMin		      "[]"
+      OutMax		      "[]"
+      OutDataTypeStr	      "Inherit: auto"
+      LockScale		      off
+      BusOutputAsStruct	      off
+      PortDimensions	      "-1"
+      VarSizeSig	      "Inherit"
+      SampleTime	      "-1"
+      SignalType	      "auto"
+      SamplingMode	      "auto"
+      SourceOfInitialOutputValue "Dialog"
+      OutputWhenDisabled      "held"
+      InitialOutput	      "[]"
+    }
+    Block {
+      BlockType		      Product
+      Inputs		      "2"
+      Multiplication	      "Element-wise(.*)"
+      CollapseMode	      "All dimensions"
+      CollapseDim	      "1"
+      InputSameDT	      on
+      OutMin		      "[]"
+      OutMax		      "[]"
+      OutDataTypeStr	      "Inherit: Same as first input"
+      LockScale		      off
+      RndMeth		      "Zero"
+      SaturateOnIntegerOverflow	on
+      SampleTime	      "-1"
+    }
+    Block {
+      BlockType		      S-Function
+      FunctionName	      "system"
+      SFunctionModules	      "''"
+      PortCounts	      "[]"
+      SFunctionDeploymentMode off
+    }
+    Block {
+      BlockType		      Scope
+      ModelBased	      off
+      TickLabels	      "OneTimeTick"
+      ZoomMode		      "on"
+      Grid		      "on"
+      TimeRange		      "auto"
+      YMin		      "-5"
+      YMax		      "5"
+      SaveToWorkspace	      off
+      SaveName		      "ScopeData"
+      DataFormat	      "Array"
+      LimitDataPoints	      on
+      MaxDataPoints	      "5000"
+      Decimation	      "1"
+      SampleInput	      off
+      SampleTime	      "-1"
+    }
+    Block {
+      BlockType		      Step
+      Time		      "1"
+      Before		      "0"
+      After		      "1"
+      SampleTime	      "-1"
+      VectorParams1D	      on
+      ZeroCross		      on
+    }
+    Block {
+      BlockType		      Stop
+    }
+    Block {
+      BlockType		      SubSystem
+      ShowPortLabels	      "FromPortIcon"
+      Permissions	      "ReadWrite"
+      PermitHierarchicalResolution "All"
+      TreatAsAtomicUnit	      off
+      CheckFcnCallInpInsideContextMsg off
+      SystemSampleTime	      "-1"
+      RTWFcnNameOpts	      "Auto"
+      RTWFileNameOpts	      "Auto"
+      RTWMemSecFuncInitTerm   "Inherit from model"
+      RTWMemSecFuncExecute    "Inherit from model"
+      RTWMemSecDataConstants  "Inherit from model"
+      RTWMemSecDataInternal   "Inherit from model"
+      RTWMemSecDataParameters "Inherit from model"
+      SimViewingDevice	      off
+      DataTypeOverride	      "UseLocalSettings"
+      DataTypeOverrideAppliesTo	"AllNumericTypes"
+      MinMaxOverflowLogging   "UseLocalSettings"
+      SFBlockType	      "NONE"
+      Variant		      off
+      GeneratePreprocessorConditionals off
+    }
+    Block {
+      BlockType		      Sum
+      IconShape		      "rectangular"
+      Inputs		      "++"
+      CollapseMode	      "All dimensions"
+      CollapseDim	      "1"
+      InputSameDT	      on
+      AccumDataTypeStr	      "Inherit: Inherit via internal rule"
+      OutMin		      "[]"
+      OutMax		      "[]"
+      OutDataTypeStr	      "Inherit: Same as first input"
+      LockScale		      off
+      RndMeth		      "Floor"
+      SaturateOnIntegerOverflow	on
+      SampleTime	      "-1"
+    }
+    Block {
+      BlockType		      Switch
+      Criteria		      "u2 >= Threshold"
+      Threshold		      "0"
+      InputSameDT	      on
+      OutMin		      "[]"
+      OutMax		      "[]"
+      OutDataTypeStr	      "Inherit: Inherit via internal rule"
+      LockScale		      off
+      RndMeth		      "Floor"
+      SaturateOnIntegerOverflow	on
+      ZeroCross		      on
+      SampleTime	      "-1"
+      AllowDiffInputSizes     off
+    }
+    Block {
+      BlockType		      Terminator
+    }
+    Block {
+      BlockType		      ToWorkspace
+      VariableName	      "simulink_output"
+      MaxDataPoints	      "1000"
+      Decimation	      "1"
+      SampleTime	      "0"
+      SaveFormat	      "Array"
+      FixptAsFi		      off
+      NumInputs		      "1"
+    }
+    Block {
+      BlockType		      TransferFcn
+      Numerator		      "[1]"
+      Denominator	      "[1 2 1]"
+      AbsoluteTolerance	      "auto"
+      ContinuousStateAttributes	"''"
+      Realization	      "auto"
+    }
+    Block {
+      BlockType		      TransportDelay
+      DelayTime		      "1"
+      InitialOutput	      "0"
+      BufferSize	      "1024"
+      FixedBuffer	      off
+      TransDelayFeedthrough   off
+      PadeOrder		      "0"
+    }
+  }
+  System {
+    Name		    "autotuner_tito_2012a"
+    Location		    [141, 310, 1163, 745]
+    Open		    on
+    ModelBrowserVisibility  off
+    ModelBrowserWidth	    200
+    ScreenColor		    "white"
+    PaperOrientation	    "landscape"
+    PaperPositionMode	    "auto"
+    PaperType		    "usletter"
+    PaperUnits		    "inches"
+    TiledPaperMargins	    [0.500000, 0.500000, 0.500000, 0.500000]
+    TiledPageScale	    1
+    ShowPageBoundaries	    off
+    ZoomFactor		    "100"
+    ReportName		    "simulink-default.rpt"
+    SIDHighWatermark	    "1211"
+    Block {
+      BlockType		      SubSystem
+      Name		      "Logger"
+      SID		      "76"
+      Ports		      [4]
+      Position		      [730, 103, 750, 292]
+      ZOrder		      91
+      MinAlgLoopOccurrences   off
+      PropExecContextOutsideSubsystem off
+      RTWSystemCode	      "Auto"
+      FunctionWithSeparateData off
+      Opaque		      off
+      RequestExecContextInheritance off
+      MaskHideContents	      off
+      System {
+	Name			"Logger"
+	Location		[1911, 198, 2953, 1077]
+	Open			off
+	ModelBrowserVisibility	off
+	ModelBrowserWidth	200
+	ScreenColor		"white"
+	PaperOrientation	"landscape"
+	PaperPositionMode	"auto"
+	PaperType		"usletter"
+	PaperUnits		"inches"
+	TiledPaperMargins	[0.500000, 0.500000, 0.500000, 0.500000]
+	TiledPageScale		1
+	ShowPageBoundaries	off
+	ZoomFactor		"100"
+	Block {
+	  BlockType		  Inport
+	  Name			  "u1"
+	  SID			  "77"
+	  Position		  [20, 23, 50, 37]
+	  ZOrder		  88
+	  IconDisplay		  "Port number"
+	  SampleTime		  "simopt.h"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "y1"
+	  SID			  "79"
+	  Position		  [20, 58, 50, 72]
+	  ZOrder		  90
+	  Port			  "2"
+	  IconDisplay		  "Port number"
+	  SampleTime		  "simopt.h"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "u2"
+	  SID			  "443"
+	  Position		  [20, 103, 50, 117]
+	  ZOrder		  91
+	  Port			  "3"
+	  IconDisplay		  "Port number"
+	  SampleTime		  "simopt.h"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "y2"
+	  SID			  "444"
+	  Position		  [20, 143, 50, 157]
+	  ZOrder		  92
+	  Port			  "4"
+	  IconDisplay		  "Port number"
+	  SampleTime		  "simopt.h"
+	}
+	Block {
+	  BlockType		  ToWorkspace
+	  Name			  "Logger"
+	  SID			  "69"
+	  Ports			  [1]
+	  Position		  [140, 75, 200, 105]
+	  ZOrder		  87
+	  VariableName		  "simout"
+	  MaxDataPoints		  "inf"
+	  SampleTime		  "simopt.h"
+	  SaveFormat		  "Structure With Time"
+	}
+	Block {
+	  BlockType		  Mux
+	  Name			  "Mux"
+	  SID			  "68"
+	  Ports			  [4, 1]
+	  Position		  [75, 12, 80, 168]
+	  ZOrder		  86
+	  ShowName		  off
+	  DisplayOption		  "bar"
+	}
+	Line {
+	  SrcBlock		  "Mux"
+	  SrcPort		  1
+	  DstBlock		  "Logger"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "u1"
+	  SrcPort		  1
+	  DstBlock		  "Mux"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "y1"
+	  SrcPort		  1
+	  Points		  [3, 0; 0, 5]
+	  DstBlock		  "Mux"
+	  DstPort		  2
+	}
+	Line {
+	  SrcBlock		  "u2"
+	  SrcPort		  1
+	  DstBlock		  "Mux"
+	  DstPort		  3
+	}
+	Line {
+	  SrcBlock		  "y2"
+	  SrcPort		  1
+	  DstBlock		  "Mux"
+	  DstPort		  4
+	}
+      }
+    }
+    Block {
+      BlockType		      Step
+      Name		      "Step"
+      SID		      "1104"
+      Position		      [15, 105, 45, 135]
+      ZOrder		      59
+      Time		      "0"
+      After		      "0"
+      SampleTime	      "simopt.h"
+    }
+    Block {
+      BlockType		      Step
+      Name		      "Step1"
+      SID		      "1105"
+      Position		      [15, 200, 45, 230]
+      ZOrder		      59
+      Time		      "0"
+      After		      "0"
+      SampleTime	      "simopt.h"
+    }
+    Block {
+      BlockType		      Sum
+      Name		      "Sum"
+      SID		      "1106"
+      Ports		      [2, 1]
+      Position		      [95, 155, 115, 175]
+      ZOrder		      -18
+      ShowName		      off
+      IconShape		      "round"
+      Inputs		      "-+|"
+      InputSameDT	      off
+      OutDataTypeStr	      "Inherit: Inherit via internal rule"
+      SaturateOnIntegerOverflow	off
+    }
+    Block {
+      BlockType		      Sum
+      Name		      "Sum1"
+      SID		      "1107"
+      Ports		      [2, 1]
+      Position		      [95, 190, 115, 210]
+      ZOrder		      -18
+      ShowName		      off
+      IconShape		      "round"
+      Inputs		      "|+-"
+      InputSameDT	      off
+      OutDataTypeStr	      "Inherit: Inherit via internal rule"
+      SaturateOnIntegerOverflow	off
+    }
+    Block {
+      BlockType		      SubSystem
+      Name		      "WoodBerry"
+      SID		      "1113"
+      Ports		      [2, 2]
+      Position		      [370, 130, 470, 205]
+      ZOrder		      158
+      BackgroundColor	      "gray"
+      MinAlgLoopOccurrences   off
+      PropExecContextOutsideSubsystem off
+      RTWSystemCode	      "Auto"
+      FunctionWithSeparateData off
+      Opaque		      off
+      RequestExecContextInheritance off
+      MaskHideContents	      off
+      System {
+	Name			"WoodBerry"
+	Location		[108, 94, 920, 529]
+	Open			off
+	ModelBrowserVisibility	off
+	ModelBrowserWidth	200
+	ScreenColor		"white"
+	PaperOrientation	"landscape"
+	PaperPositionMode	"auto"
+	PaperType		"A4"
+	PaperUnits		"centimeters"
+	TiledPaperMargins	[1.270000, 1.270000, 1.270000, 1.270000]
+	TiledPageScale		1
+	ShowPageBoundaries	off
+	ZoomFactor		"100"
+	Block {
+	  BlockType		  Inport
+	  Name			  "u1"
+	  SID			  "1114"
+	  Position		  [175, 103, 205, 117]
+	  ZOrder		  -1
+	  IconDisplay		  "Port number"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "u2"
+	  SID			  "1115"
+	  Position		  [175, 313, 205, 327]
+	  ZOrder		  1
+	  Port			  "2"
+	  IconDisplay		  "Port number"
+	}
+	Block {
+	  BlockType		  TransferFcn
+	  Name			  "P11"
+	  SID			  "1116"
+	  Position		  [275, 92, 335, 128]
+	  ZOrder		  -9
+	  Numerator		  "[12.8]"
+	  Denominator		  "[16.7 1]"
+	}
+	Block {
+	  BlockType		  TransportDelay
+	  Name			  "P11_d"
+	  SID			  "1117"
+	  Ports			  [1, 1]
+	  Position		  [365, 95, 395, 125]
+	  ZOrder		  -10
+	}
+	Block {
+	  BlockType		  TransferFcn
+	  Name			  "P12"
+	  SID			  "1118"
+	  Position		  [275, 162, 335, 198]
+	  ZOrder		  -9
+	  Numerator		  "[-18.9]"
+	  Denominator		  "[21 1]"
+	}
+	Block {
+	  BlockType		  TransportDelay
+	  Name			  "P12_d"
+	  SID			  "1119"
+	  Ports			  [1, 1]
+	  Position		  [365, 165, 395, 195]
+	  ZOrder		  -10
+	  DelayTime		  "3"
+	}
+	Block {
+	  BlockType		  TransferFcn
+	  Name			  "P21"
+	  SID			  "1120"
+	  Position		  [275, 227, 335, 263]
+	  ZOrder		  -9
+	  Numerator		  "[6.6]"
+	  Denominator		  "[10.9 1]"
+	}
+	Block {
+	  BlockType		  TransportDelay
+	  Name			  "P21_d"
+	  SID			  "1121"
+	  Ports			  [1, 1]
+	  Position		  [365, 230, 395, 260]
+	  ZOrder		  -10
+	  DelayTime		  "7"
+	}
+	Block {
+	  BlockType		  TransferFcn
+	  Name			  "P22"
+	  SID			  "1122"
+	  Position		  [275, 302, 335, 338]
+	  ZOrder		  -9
+	  Numerator		  "[-19.4]"
+	  Denominator		  "[14.4 1]"
+	}
+	Block {
+	  BlockType		  TransportDelay
+	  Name			  "P22_d"
+	  SID			  "1123"
+	  Ports			  [1, 1]
+	  Position		  [365, 305, 395, 335]
+	  ZOrder		  -10
+	  DelayTime		  "3"
+	}
+	Block {
+	  BlockType		  Sum
+	  Name			  "Sum"
+	  SID			  "1124"
+	  Ports			  [2, 1]
+	  Position		  [465, 100, 485, 120]
+	  ZOrder		  -18
+	  ShowName		  off
+	  IconShape		  "round"
+	  Inputs		  "|++"
+	  InputSameDT		  off
+	  OutDataTypeStr	  "Inherit: Inherit via internal rule"
+	  SaturateOnIntegerOverflow off
+	}
+	Block {
+	  BlockType		  Sum
+	  Name			  "Sum2"
+	  SID			  "1125"
+	  Ports			  [2, 1]
+	  Position		  [465, 310, 485, 330]
+	  ZOrder		  -18
+	  NamePlacement		  "alternate"
+	  ShowName		  off
+	  IconShape		  "round"
+	  Inputs		  "++|"
+	  InputSameDT		  off
+	  OutDataTypeStr	  "Inherit: Inherit via internal rule"
+	  SaturateOnIntegerOverflow off
+	}
+	Block {
+	  BlockType		  Outport
+	  Name			  "y1"
+	  SID			  "1126"
+	  Position		  [640, 103, 670, 117]
+	  ZOrder		  -2
+	  IconDisplay		  "Port number"
+	}
+	Block {
+	  BlockType		  Outport
+	  Name			  "y2"
+	  SID			  "1127"
+	  Position		  [640, 313, 670, 327]
+	  ZOrder		  4
+	  Port			  "2"
+	  IconDisplay		  "Port number"
+	}
+	Line {
+	  SrcBlock		  "Sum2"
+	  SrcPort		  1
+	  DstBlock		  "y2"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "P22_d"
+	  SrcPort		  1
+	  DstBlock		  "Sum2"
+	  DstPort		  2
+	}
+	Line {
+	  SrcBlock		  "P22"
+	  SrcPort		  1
+	  DstBlock		  "P22_d"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "P21_d"
+	  SrcPort		  1
+	  Points		  [75, 0]
+	  DstBlock		  "Sum2"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "P21"
+	  SrcPort		  1
+	  DstBlock		  "P21_d"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "u2"
+	  SrcPort		  1
+	  Points		  [10, 0]
+	  Branch {
+	    DstBlock		    "P22"
+	    DstPort		    1
+	  }
+	  Branch {
+	    Points		    [0, 0; 0, -140]
+	    DstBlock		    "P12"
+	    DstPort		    1
+	  }
+	}
+	Line {
+	  SrcBlock		  "P12_d"
+	  SrcPort		  1
+	  Points		  [75, 0]
+	  DstBlock		  "Sum"
+	  DstPort		  2
+	}
+	Line {
+	  SrcBlock		  "P12"
+	  SrcPort		  1
+	  DstBlock		  "P12_d"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "u1"
+	  SrcPort		  1
+	  Points		  [5, 0]
+	  Branch {
+	    Points		    [25, 0; 0, 135]
+	    DstBlock		    "P21"
+	    DstPort		    1
+	  }
+	  Branch {
+	    DstBlock		    "P11"
+	    DstPort		    1
+	  }
+	}
+	Line {
+	  SrcBlock		  "Sum"
+	  SrcPort		  1
+	  DstBlock		  "y1"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "P11_d"
+	  SrcPort		  1
+	  DstBlock		  "Sum"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "P11"
+	  SrcPort		  1
+	  DstBlock		  "P11_d"
+	  DstPort		  1
+	}
+      }
+    }
+    Block {
+      BlockType		      SubSystem
+      Name		      "multi-NOMAD"
+      SID		      "1170"
+      Ports		      [2, 2]
+      Position		      [160, 154, 260, 196]
+      ZOrder		      158
+      BackgroundColor	      "lightBlue"
+      MinAlgLoopOccurrences   off
+      PropExecContextOutsideSubsystem off
+      RTWSystemCode	      "Auto"
+      FunctionWithSeparateData off
+      Opaque		      off
+      RequestExecContextInheritance off
+      MaskHideContents	      off
+      System {
+	Name			"multi-NOMAD"
+	Location		[107, 14, 1149, 449]
+	Open			off
+	ModelBrowserVisibility	off
+	ModelBrowserWidth	200
+	ScreenColor		"white"
+	PaperOrientation	"landscape"
+	PaperPositionMode	"auto"
+	PaperType		"A4"
+	PaperUnits		"centimeters"
+	TiledPaperMargins	[1.270000, 1.270000, 1.270000, 1.270000]
+	TiledPageScale		1
+	ShowPageBoundaries	off
+	ZoomFactor		"100"
+	Block {
+	  BlockType		  Inport
+	  Name			  "e1"
+	  SID			  "1171"
+	  Position		  [175, 103, 205, 117]
+	  ZOrder		  -1
+	  IconDisplay		  "Port number"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "e2"
+	  SID			  "1172"
+	  Position		  [175, 193, 205, 207]
+	  ZOrder		  1
+	  Port			  "2"
+	  IconDisplay		  "Port number"
+	}
+	Block {
+	  BlockType		  SubSystem
+	  Name			  "Autotuner1"
+	  SID			  "1173"
+	  Ports			  [2, 3]
+	  Position		  [245, 99, 345, 141]
+	  ZOrder		  63
+	  MinAlgLoopOccurrences	  off
+	  PropExecContextOutsideSubsystem off
+	  RTWSystemCode		  "Auto"
+	  FunctionWithSeparateData off
+	  Opaque		  off
+	  RequestExecContextInheritance	off
+	  MaskHideContents	  off
+	  System {
+	    Name		    "Autotuner1"
+	    Location		    [950, 343, 1992, 858]
+	    Open		    off
+	    ModelBrowserVisibility  off
+	    ModelBrowserWidth	    200
+	    ScreenColor		    "white"
+	    PaperOrientation	    "landscape"
+	    PaperPositionMode	    "auto"
+	    PaperType		    "A4"
+	    PaperUnits		    "centimeters"
+	    TiledPaperMargins	    [1.270000, 1.270000, 1.270000, 1.270000]
+	    TiledPageScale	    1
+	    ShowPageBoundaries	    off
+	    ZoomFactor		    "100"
+	    Block {
+	      BlockType		      Inport
+	      Name		      "e"
+	      SID		      "1174"
+	      Position		      [30, 148, 60, 162]
+	      ZOrder		      -1
+	      IconDisplay	      "Port number"
+	    }
+	    Block {
+	      BlockType		      Inport
+	      Name		      "other_done"
+	      SID		      "1175"
+	      Position		      [50, 438, 80, 452]
+	      ZOrder		      -1
+	      Port		      "2"
+	      IconDisplay	      "Port number"
+	    }
+	    Block {
+	      BlockType		      Product
+	      Name		      "AND"
+	      SID		      "1176"
+	      Ports		      [2, 1]
+	      Position		      [170, 437, 200, 468]
+	      ZOrder		      -13
+	      InputSameDT	      off
+	      OutDataTypeStr	      "Inherit: Inherit via internal rule"
+	      SaturateOnIntegerOverflow	off
+	    }
+	    Block {
+	      BlockType		      Reference
+	      Name		      "Compare\nTo Constant"
+	      SID		      "1177"
+	      Ports		      [1, 1]
+	      Position		      [370, 200, 400, 230]
+	      ZOrder		      118
+	      LibraryVersion	      "1.260"
+	      SourceBlock	      "simulink/Logic and Bit\nOperations/Compare\nTo Constant"
+	      SourceType	      "Compare To Constant"
+	      relop		      ">="
+	      const		      "params.expStartTime"
+	      OutDataTypeStr	      "boolean"
+	      ZeroCross		      on
+	    }
+	    Block {
+	      BlockType		      Constant
+	      Name		      "Constant"
+	      SID		      "1178"
+	      Position		      [310, 265, 340, 295]
+	      ZOrder		      117
+	      Value		      "params.ustart"
+	      SampleTime	      "simopt.h"
+	    }
+	    Block {
+	      BlockType		      SubSystem
+	      Name		      "Constraint"
+	      SID		      "1179"
+	      Ports		      [3, 1]
+	      Position		      [685, 370, 755, 420]
+	      ZOrder		      -4
+	      LibraryVersion	      "1.32"
+	      ErrorFcn		      "Stateflow.Translate.translate"
+	      PermitHierarchicalResolution "ExplicitOnly"
+	      TreatAsAtomicUnit	      on
+	      MinAlgLoopOccurrences   off
+	      PropExecContextOutsideSubsystem off
+	      SystemSampleTime	      "simopt.h"
+	      RTWSystemCode	      "Auto"
+	      FunctionWithSeparateData off
+	      Opaque		      off
+	      RequestExecContextInheritance off
+	      MaskHideContents	      off
+	      SFBlockType	      "MATLAB Function"
+	      MaskType		      "Stateflow"
+	      MaskDescription	      "Embedded MATLAB block"
+	      MaskSelfModifiable      on
+	      MaskDisplay	      "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('p"
+	      "rivate/eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'Constraint']);"
+	      MaskIconFrame	      on
+	      MaskIconOpaque	      off
+	      MaskIconRotate	      "none"
+	      MaskPortRotate	      "default"
+	      MaskIconUnits	      "normalized"
+	      System {
+		Name			"Constraint"
+		Location		[223, 338, 826, 833]
+		Open			off
+		ModelBrowserVisibility	off
+		ModelBrowserWidth	200
+		ScreenColor		"white"
+		PaperOrientation	"landscape"
+		PaperPositionMode	"auto"
+		PaperType		"A4"
+		PaperUnits		"centimeters"
+		TiledPaperMargins	[1.270000, 1.270000, 1.270000, 1.270000]
+		TiledPageScale		1
+		ShowPageBoundaries	off
+		ZoomFactor		"100"
+		SIDHighWatermark	"29"
+		Block {
+		  BlockType		  Inport
+		  Name			  "time"
+		  SID			  "1179::23"
+		  Position		  [20, 101, 40, 119]
+		  ZOrder		  9
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "all_done"
+		  SID			  "1179::24"
+		  Position		  [20, 136, 40, 154]
+		  ZOrder		  10
+		  Port			  "2"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "timeAfterExp"
+		  SID			  "1179::26"
+		  Position		  [20, 171, 40, 189]
+		  ZOrder		  11
+		  Port			  "3"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Demux
+		  Name			  " Demux "
+		  SID			  "1179::28"
+		  Ports			  [1, 1]
+		  Position		  [270, 230, 320, 270]
+		  ZOrder		  13
+		  Outputs		  "1"
+		}
+		Block {
+		  BlockType		  S-Function
+		  Name			  " SFunction "
+		  SID			  "1179::27"
+		  Tag			  "Stateflow S-Function autotuner_tito_2012a 7"
+		  Ports			  [3, 2]
+		  Position		  [180, 100, 230, 180]
+		  ZOrder		  12
+		  FunctionName		  "sf_sfun"
+		  PortCounts		  "[3 2]"
+		  EnableBusSupport	  on
+		  Port {
+		    PortNumber		    2
+		    Name		    "stop"
+		    RTWStorageClass	    "Auto"
+		    DataLoggingNameMode	    "SignalName"
+		  }
+		}
+		Block {
+		  BlockType		  Terminator
+		  Name			  " Terminator "
+		  SID			  "1179::29"
+		  Position		  [460, 241, 480, 259]
+		  ZOrder		  14
+		}
+		Block {
+		  BlockType		  Outport
+		  Name			  "stop"
+		  SID			  "1179::5"
+		  Position		  [460, 101, 480, 119]
+		  ZOrder		  -7
+		  IconDisplay		  "Port number"
+		}
+		Line {
+		  SrcBlock		  " SFunction "
+		  SrcPort		  1
+		  Points		  [20, 0]
+		  DstBlock		  " Demux "
+		  DstPort		  1
+		}
+		Line {
+		  SrcBlock		  " Demux "
+		  SrcPort		  1
+		  DstBlock		  " Terminator "
+		  DstPort		  1
+		}
+		Line {
+		  Name			  "stop"
+		  Labels		  [0, 0]
+		  SrcBlock		  " SFunction "
+		  SrcPort		  2
+		  DstBlock		  "stop"
+		  DstPort		  1
+		}
+		Line {
+		  SrcBlock		  "timeAfterExp"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  3
+		}
+		Line {
+		  SrcBlock		  "all_done"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  2
+		}
+		Line {
+		  SrcBlock		  "time"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  1
+		}
+	      }
+	    }
+	    Block {
+	      BlockType		      DigitalClock
+	      Name		      "Digital Clock"
+	      SID		      "1180"
+	      Position		      [15, 203, 80, 227]
+	      ZOrder		      -8
+	      SampleTime	      "simopt.h"
+	    }
+	    Block {
+	      BlockType		      Constant
+	      Name		      "Relay_parameters"
+	      SID		      "1181"
+	      Position		      [30, 25, 60, 55]
+	      ZOrder		      -4
+	      Value		      "[params.eps, params.gamma, simopt.h, params.low_limit, params.dev_limit, 1 , params.uon, params.h"
+	      "yst, params.noiseMeasureTime, 1, params.gamma2, params.switches, params.ystep, params.ustep]"
+	      SampleTime	      "simopt.h"
+	    }
+	    Block {
+	      BlockType		      Stop
+	      Name		      "Stop Simulation"
+	      SID		      "1182"
+	      Position		      [805, 377, 840, 413]
+	      ZOrder		      -4
+	    }
+	    Block {
+	      BlockType		      Switch
+	      Name		      "Switch"
+	      SID		      "1183"
+	      Position		      [730, 175, 780, 215]
+	      ZOrder		      62
+	      Criteria		      "u2 ~= 0"
+	      InputSameDT	      off
+	      SaturateOnIntegerOverflow	off
+	    }
+	    Block {
+	      BlockType		      SubSystem
+	      Name		      "relay_exp\n"
+	      SID		      "1184"
+	      Ports		      [5, 3]
+	      Position		      [480, 22, 635, 158]
+	      ZOrder		      3
+	      LibraryVersion	      "1.32"
+	      ErrorFcn		      "Stateflow.Translate.translate"
+	      PermitHierarchicalResolution "ExplicitOnly"
+	      TreatAsAtomicUnit	      on
+	      MinAlgLoopOccurrences   off
+	      PropExecContextOutsideSubsystem off
+	      SystemSampleTime	      "simopt.h"
+	      RTWSystemCode	      "Auto"
+	      FunctionWithSeparateData off
+	      Opaque		      off
+	      RequestExecContextInheritance off
+	      MaskHideContents	      off
+	      SFBlockType	      "MATLAB Function"
+	      MaskType		      "Stateflow"
+	      MaskDescription	      "Embedded MATLAB block"
+	      MaskSelfModifiable      on
+	      MaskDisplay	      "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('p"
+	      "rivate/eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'relay_exp']);"
+	      MaskIconFrame	      on
+	      MaskIconOpaque	      off
+	      MaskIconRotate	      "none"
+	      MaskPortRotate	      "default"
+	      MaskIconUnits	      "normalized"
+	      System {
+		Name			"relay_exp\n"
+		Location		[189, 219, 840, 949]
+		Open			off
+		ModelBrowserVisibility	off
+		ModelBrowserWidth	200
+		ScreenColor		"white"
+		PaperOrientation	"landscape"
+		PaperPositionMode	"auto"
+		PaperType		"A4"
+		PaperUnits		"centimeters"
+		TiledPaperMargins	[1.270000, 1.270000, 1.270000, 1.270000]
+		TiledPageScale		1
+		ShowPageBoundaries	off
+		ZoomFactor		"100"
+		SIDHighWatermark	"41"
+		Block {
+		  BlockType		  Inport
+		  Name			  "relay_par"
+		  SID			  "1184::36"
+		  Position		  [20, 101, 40, 119]
+		  ZOrder		  21
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "e"
+		  SID			  "1184::23"
+		  Position		  [20, 136, 40, 154]
+		  ZOrder		  9
+		  Port			  "2"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "t"
+		  SID			  "1184::28"
+		  Position		  [20, 171, 40, 189]
+		  ZOrder		  14
+		  Port			  "3"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "u_ref"
+		  SID			  "1184::37"
+		  Position		  [20, 206, 40, 224]
+		  ZOrder		  22
+		  Port			  "4"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "run_exp"
+		  SID			  "1184::31"
+		  Position		  [20, 246, 40, 264]
+		  ZOrder		  17
+		  Port			  "5"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Demux
+		  Name			  " Demux "
+		  SID			  "1184::40"
+		  Ports			  [1, 1]
+		  Position		  [270, 245, 320, 285]
+		  ZOrder		  25
+		  Outputs		  "1"
+		}
+		Block {
+		  BlockType		  S-Function
+		  Name			  " SFunction "
+		  SID			  "1184::39"
+		  Tag			  "Stateflow S-Function autotuner_tito_2012a 8"
+		  Ports			  [5, 4]
+		  Position		  [180, 100, 230, 220]
+		  ZOrder		  24
+		  FunctionName		  "sf_sfun"
+		  PortCounts		  "[5 4]"
+		  EnableBusSupport	  on
+		  Port {
+		    PortNumber		    2
+		    Name		    "result"
+		    RTWStorageClass	    "Auto"
+		    DataLoggingNameMode	    "SignalName"
+		  }
+		  Port {
+		    PortNumber		    3
+		    Name		    "u"
+		    RTWStorageClass	    "Auto"
+		    DataLoggingNameMode	    "SignalName"
+		  }
+		  Port {
+		    PortNumber		    4
+		    Name		    "done"
+		    RTWStorageClass	    "Auto"
+		    DataLoggingNameMode	    "SignalName"
+		  }
+		}
+		Block {
+		  BlockType		  Terminator
+		  Name			  " Terminator "
+		  SID			  "1184::41"
+		  Position		  [460, 256, 480, 274]
+		  ZOrder		  26
+		}
+		Block {
+		  BlockType		  Outport
+		  Name			  "result"
+		  SID			  "1184::38"
+		  Position		  [460, 101, 480, 119]
+		  ZOrder		  23
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Outport
+		  Name			  "u"
+		  SID			  "1184::27"
+		  Position		  [460, 136, 480, 154]
+		  ZOrder		  13
+		  Port			  "2"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Outport
+		  Name			  "done"
+		  SID			  "1184::32"
+		  Position		  [460, 171, 480, 189]
+		  ZOrder		  18
+		  Port			  "3"
+		  IconDisplay		  "Port number"
+		}
+		Line {
+		  SrcBlock		  " SFunction "
+		  SrcPort		  1
+		  DstBlock		  " Demux "
+		  DstPort		  1
+		}
+		Line {
+		  SrcBlock		  " Demux "
+		  SrcPort		  1
+		  DstBlock		  " Terminator "
+		  DstPort		  1
+		}
+		Line {
+		  Name			  "done"
+		  Labels		  [0, 0]
+		  SrcBlock		  " SFunction "
+		  SrcPort		  4
+		  DstBlock		  "done"
+		  DstPort		  1
+		}
+		Line {
+		  Name			  "u"
+		  Labels		  [0, 0]
+		  SrcBlock		  " SFunction "
+		  SrcPort		  3
+		  DstBlock		  "u"
+		  DstPort		  1
+		}
+		Line {
+		  Name			  "result"
+		  Labels		  [0, 0]
+		  SrcBlock		  " SFunction "
+		  SrcPort		  2
+		  DstBlock		  "result"
+		  DstPort		  1
+		}
+		Line {
+		  SrcBlock		  "run_exp"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  5
+		}
+		Line {
+		  SrcBlock		  "u_ref"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  4
+		}
+		Line {
+		  SrcBlock		  "t"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  3
+		}
+		Line {
+		  SrcBlock		  "e"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  2
+		}
+		Line {
+		  SrcBlock		  "relay_par"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  1
+		}
+	      }
+	    }
+	    Block {
+	      BlockType		      Constant
+	      Name		      "timeAfterExp"
+	      SID		      "1185"
+	      Position		      [585, 410, 615, 440]
+	      ZOrder		      -4
+	      Value		      "params.timeAfterExp"
+	    }
+	    Block {
+	      BlockType		      Outport
+	      Name		      "u"
+	      SID		      "1186"
+	      Position		      [835, 188, 865, 202]
+	      ZOrder		      4
+	      IconDisplay	      "Port number"
+	    }
+	    Block {
+	      BlockType		      Outport
+	      Name		      "done"
+	      SID		      "1187"
+	      Position		      [830, 113, 860, 127]
+	      ZOrder		      4
+	      Port		      "2"
+	      IconDisplay	      "Port number"
+	    }
+	    Block {
+	      BlockType		      Outport
+	      Name		      "result1"
+	      SID		      "1188"
+	      Position		      [705, 38, 735, 52]
+	      ZOrder		      119
+	      Port		      "3"
+	      IconDisplay	      "Port number"
+	    }
+	    Line {
+	      SrcBlock		      "relay_exp\n"
+	      SrcPort		      1
+	      DstBlock		      "result1"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "timeAfterExp"
+	      SrcPort		      1
+	      Points		      [25, 0; 0, -15]
+	      DstBlock		      "Constraint"
+	      DstPort		      3
+	    }
+	    Line {
+	      SrcBlock		      "relay_exp\n"
+	      SrcPort		      3
+	      Points		      [0, 10; 18, 0]
+	      Branch {
+		Points			[157, 0]
+		DstBlock		"done"
+		DstPort			1
+	      }
+	      Branch {
+		Points			[0, 180; -556, 0; 0, 135]
+		DstBlock		"AND"
+		DstPort			2
+	      }
+	    }
+	    Line {
+	      SrcBlock		      "other_done"
+	      SrcPort		      1
+	      DstBlock		      "AND"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "AND"
+	      SrcPort		      1
+	      Points		      [14, 0; 0, -60]
+	      DstBlock		      "Constraint"
+	      DstPort		      2
+	    }
+	    Line {
+	      SrcBlock		      "Constraint"
+	      SrcPort		      1
+	      DstBlock		      "Stop Simulation"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "Digital Clock"
+	      SrcPort		      1
+	      Points		      [30, 0]
+	      Branch {
+		Points			[0, 165]
+		DstBlock		"Constraint"
+		DstPort			1
+	      }
+	      Branch {
+		Points			[205, 0]
+		Branch {
+		  DstBlock		  "Compare\nTo Constant"
+		  DstPort		  1
+		}
+		Branch {
+		  Points		  [0, -124]
+		  DstBlock		  "relay_exp\n"
+		  DstPort		  3
+		}
+	      }
+	    }
+	    Line {
+	      SrcBlock		      "e"
+	      SrcPort		      1
+	      Points		      [142, 0; 0, -90]
+	      DstBlock		      "relay_exp\n"
+	      DstPort		      2
+	    }
+	    Line {
+	      SrcBlock		      "Constant"
+	      SrcPort		      1
+	      Points		      [90, 0]
+	      Branch {
+		Points			[127, 0; 0, -70]
+		DstBlock		"Switch"
+		DstPort			3
+	      }
+	      Branch {
+		Points			[0, -165]
+		DstBlock		"relay_exp\n"
+		DstPort			4
+	      }
+	    }
+	    Line {
+	      SrcBlock		      "Compare\nTo Constant"
+	      SrcPort		      1
+	      Points		      [60, 0; 0, -19]
+	      Branch {
+		DstBlock		"relay_exp\n"
+		DstPort			5
+	      }
+	      Branch {
+		Points			[250, 0]
+		DstBlock		"Switch"
+		DstPort			2
+	      }
+	    }
+	    Line {
+	      SrcBlock		      "relay_exp\n"
+	      SrcPort		      2
+	      Points		      [75, 0]
+	      DstBlock		      "Switch"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "Relay_parameters"
+	      SrcPort		      1
+	      DstBlock		      "relay_exp\n"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "Switch"
+	      SrcPort		      1
+	      DstBlock		      "u"
+	      DstPort		      1
+	    }
+	  }
+	}
+	Block {
+	  BlockType		  SubSystem
+	  Name			  "Autotuner2"
+	  SID			  "1189"
+	  Ports			  [2, 3]
+	  Position		  [255, 189, 355, 231]
+	  ZOrder		  64
+	  MinAlgLoopOccurrences	  off
+	  PropExecContextOutsideSubsystem off
+	  RTWSystemCode		  "Auto"
+	  FunctionWithSeparateData off
+	  Opaque		  off
+	  RequestExecContextInheritance	off
+	  MaskHideContents	  off
+	  System {
+	    Name		    "Autotuner2"
+	    Location		    [118, 33, 1160, 912]
+	    Open		    off
+	    ModelBrowserVisibility  off
+	    ModelBrowserWidth	    200
+	    ScreenColor		    "white"
+	    PaperOrientation	    "landscape"
+	    PaperPositionMode	    "auto"
+	    PaperType		    "A4"
+	    PaperUnits		    "centimeters"
+	    TiledPaperMargins	    [1.270000, 1.270000, 1.270000, 1.270000]
+	    TiledPageScale	    1
+	    ShowPageBoundaries	    off
+	    ZoomFactor		    "80"
+	    Block {
+	      BlockType		      Inport
+	      Name		      "e"
+	      SID		      "1190"
+	      Position		      [30, 148, 60, 162]
+	      ZOrder		      -1
+	      IconDisplay	      "Port number"
+	    }
+	    Block {
+	      BlockType		      Inport
+	      Name		      "other_done"
+	      SID		      "1191"
+	      Position		      [35, 413, 65, 427]
+	      ZOrder		      -1
+	      Port		      "2"
+	      IconDisplay	      "Port number"
+	    }
+	    Block {
+	      BlockType		      Product
+	      Name		      "AND"
+	      SID		      "1192"
+	      Ports		      [2, 1]
+	      Position		      [110, 412, 140, 443]
+	      ZOrder		      -13
+	      InputSameDT	      off
+	      OutDataTypeStr	      "Inherit: Inherit via internal rule"
+	      SaturateOnIntegerOverflow	off
+	    }
+	    Block {
+	      BlockType		      Reference
+	      Name		      "Compare\nTo Constant"
+	      SID		      "1193"
+	      Ports		      [1, 1]
+	      Position		      [370, 200, 400, 230]
+	      ZOrder		      120
+	      LibraryVersion	      "1.260"
+	      SourceBlock	      "simulink/Logic and Bit\nOperations/Compare\nTo Constant"
+	      SourceType	      "Compare To Constant"
+	      relop		      ">="
+	      const		      "params.expStartTime"
+	      OutDataTypeStr	      "boolean"
+	      ZeroCross		      on
+	    }
+	    Block {
+	      BlockType		      Constant
+	      Name		      "Constant"
+	      SID		      "1194"
+	      Position		      [315, 265, 345, 295]
+	      ZOrder		      119
+	      Value		      "params.ustart"
+	      SampleTime	      "simopt.h"
+	    }
+	    Block {
+	      BlockType		      SubSystem
+	      Name		      "Constraint"
+	      SID		      "1195"
+	      Ports		      [3, 1]
+	      Position		      [675, 355, 745, 405]
+	      ZOrder		      -4
+	      LibraryVersion	      "1.32"
+	      ErrorFcn		      "Stateflow.Translate.translate"
+	      PermitHierarchicalResolution "ExplicitOnly"
+	      TreatAsAtomicUnit	      on
+	      MinAlgLoopOccurrences   off
+	      PropExecContextOutsideSubsystem off
+	      SystemSampleTime	      "simopt.h"
+	      RTWSystemCode	      "Auto"
+	      FunctionWithSeparateData off
+	      Opaque		      off
+	      RequestExecContextInheritance off
+	      MaskHideContents	      off
+	      SFBlockType	      "MATLAB Function"
+	      MaskType		      "Stateflow"
+	      MaskDescription	      "Embedded MATLAB block"
+	      MaskSelfModifiable      on
+	      MaskDisplay	      "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('p"
+	      "rivate/eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'Constraint']);"
+	      MaskIconFrame	      on
+	      MaskIconOpaque	      off
+	      MaskIconRotate	      "none"
+	      MaskPortRotate	      "default"
+	      MaskIconUnits	      "normalized"
+	      System {
+		Name			"Constraint"
+		Location		[223, 338, 826, 833]
+		Open			off
+		ModelBrowserVisibility	off
+		ModelBrowserWidth	200
+		ScreenColor		"white"
+		PaperOrientation	"landscape"
+		PaperPositionMode	"auto"
+		PaperType		"A4"
+		PaperUnits		"centimeters"
+		TiledPaperMargins	[1.270000, 1.270000, 1.270000, 1.270000]
+		TiledPageScale		1
+		ShowPageBoundaries	off
+		ZoomFactor		"100"
+		SIDHighWatermark	"29"
+		Block {
+		  BlockType		  Inport
+		  Name			  "time"
+		  SID			  "1195::23"
+		  Position		  [20, 101, 40, 119]
+		  ZOrder		  9
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "all_done"
+		  SID			  "1195::24"
+		  Position		  [20, 136, 40, 154]
+		  ZOrder		  10
+		  Port			  "2"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "timeAfterExp"
+		  SID			  "1195::26"
+		  Position		  [20, 171, 40, 189]
+		  ZOrder		  11
+		  Port			  "3"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Demux
+		  Name			  " Demux "
+		  SID			  "1195::28"
+		  Ports			  [1, 1]
+		  Position		  [270, 230, 320, 270]
+		  ZOrder		  13
+		  Outputs		  "1"
+		}
+		Block {
+		  BlockType		  S-Function
+		  Name			  " SFunction "
+		  SID			  "1195::27"
+		  Tag			  "Stateflow S-Function autotuner_tito_2012a 9"
+		  Ports			  [3, 2]
+		  Position		  [180, 100, 230, 180]
+		  ZOrder		  12
+		  FunctionName		  "sf_sfun"
+		  PortCounts		  "[3 2]"
+		  EnableBusSupport	  on
+		  Port {
+		    PortNumber		    2
+		    Name		    "stop"
+		    RTWStorageClass	    "Auto"
+		    DataLoggingNameMode	    "SignalName"
+		  }
+		}
+		Block {
+		  BlockType		  Terminator
+		  Name			  " Terminator "
+		  SID			  "1195::29"
+		  Position		  [460, 241, 480, 259]
+		  ZOrder		  14
+		}
+		Block {
+		  BlockType		  Outport
+		  Name			  "stop"
+		  SID			  "1195::5"
+		  Position		  [460, 101, 480, 119]
+		  ZOrder		  -7
+		  IconDisplay		  "Port number"
+		}
+		Line {
+		  SrcBlock		  " SFunction "
+		  SrcPort		  1
+		  Points		  [20, 0]
+		  DstBlock		  " Demux "
+		  DstPort		  1
+		}
+		Line {
+		  SrcBlock		  " Demux "
+		  SrcPort		  1
+		  DstBlock		  " Terminator "
+		  DstPort		  1
+		}
+		Line {
+		  Name			  "stop"
+		  Labels		  [0, 0]
+		  SrcBlock		  " SFunction "
+		  SrcPort		  2
+		  DstBlock		  "stop"
+		  DstPort		  1
+		}
+		Line {
+		  SrcBlock		  "timeAfterExp"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  3
+		}
+		Line {
+		  SrcBlock		  "all_done"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  2
+		}
+		Line {
+		  SrcBlock		  "time"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  1
+		}
+	      }
+	    }
+	    Block {
+	      BlockType		      DigitalClock
+	      Name		      "Digital Clock"
+	      SID		      "1196"
+	      Position		      [15, 203, 80, 227]
+	      ZOrder		      -8
+	      SampleTime	      "simopt.h"
+	    }
+	    Block {
+	      BlockType		      Constant
+	      Name		      "Relay_parameters"
+	      SID		      "1197"
+	      Position		      [30, 25, 60, 55]
+	      ZOrder		      -4
+	      Value		      "[params.eps,params.gamma, simopt.h,params.low_limit,params.dev_limit,1,params.uon,params.hyst,par"
+	      "ams.noiseMeasureTime,1,params.gamma2,params.switches,params.ystep,params.ustep]"
+	      SampleTime	      "simopt.h"
+	    }
+	    Block {
+	      BlockType		      Scope
+	      Name		      "Scope"
+	      SID		      "1198"
+	      Ports		      [1]
+	      Position		      [795, 279, 825, 311]
+	      ZOrder		      54
+	      Floating		      off
+	      Location		      [773, 742, 1350, 1166]
+	      Open		      off
+	      NumInputPorts	      "1"
+	      ZoomMode		      "xonly"
+	      List {
+		ListType		AxesTitles
+		axes1			"%<SignalLabel>"
+	      }
+	      List {
+		ListType		ScopeGraphics
+		FigureColor		"[0.156862745098039 0.156862745098039 0.156862745098039]"
+		AxesColor		"[0 0 0]"
+		AxesTickColor		"[0.686274509803922 0.686274509803922 0.686274509803922]"
+		LineColors		"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]"
+		LineStyles		"-|-|-|-|-|-"
+		LineWidths		"[0.5 0.5 0.5 0.5 0.5 0.5]"
+		MarkerStyles		"none|none|none|none|none|none"
+	      }
+	      ShowLegends	      off
+	      YMin		      "-2"
+	      YMax		      "10"
+	      SaveName		      "ScopeData1"
+	      DataFormat	      "StructureWithTime"
+	      LimitDataPoints	      off
+	    }
+	    Block {
+	      BlockType		      Stop
+	      Name		      "Stop Simulation"
+	      SID		      "1199"
+	      Position		      [795, 362, 830, 398]
+	      ZOrder		      -4
+	    }
+	    Block {
+	      BlockType		      Switch
+	      Name		      "Switch"
+	      SID		      "1200"
+	      Position		      [730, 175, 780, 215]
+	      ZOrder		      62
+	      Criteria		      "u2 ~= 0"
+	      InputSameDT	      off
+	      SaturateOnIntegerOverflow	off
+	    }
+	    Block {
+	      BlockType		      SubSystem
+	      Name		      "relay_exp\n"
+	      SID		      "1201"
+	      Ports		      [5, 3]
+	      Position		      [480, 22, 635, 158]
+	      ZOrder		      3
+	      LibraryVersion	      "1.32"
+	      ErrorFcn		      "Stateflow.Translate.translate"
+	      PermitHierarchicalResolution "ExplicitOnly"
+	      TreatAsAtomicUnit	      on
+	      MinAlgLoopOccurrences   off
+	      PropExecContextOutsideSubsystem off
+	      SystemSampleTime	      "simopt.h"
+	      RTWSystemCode	      "Auto"
+	      FunctionWithSeparateData off
+	      Opaque		      off
+	      RequestExecContextInheritance off
+	      MaskHideContents	      off
+	      SFBlockType	      "MATLAB Function"
+	      MaskType		      "Stateflow"
+	      MaskDescription	      "Embedded MATLAB block"
+	      MaskSelfModifiable      on
+	      MaskDisplay	      "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('p"
+	      "rivate/eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'relay_exp']);"
+	      MaskIconFrame	      on
+	      MaskIconOpaque	      off
+	      MaskIconRotate	      "none"
+	      MaskPortRotate	      "default"
+	      MaskIconUnits	      "normalized"
+	      System {
+		Name			"relay_exp\n"
+		Location		[189, 219, 840, 949]
+		Open			off
+		ModelBrowserVisibility	off
+		ModelBrowserWidth	200
+		ScreenColor		"white"
+		PaperOrientation	"landscape"
+		PaperPositionMode	"auto"
+		PaperType		"A4"
+		PaperUnits		"centimeters"
+		TiledPaperMargins	[1.270000, 1.270000, 1.270000, 1.270000]
+		TiledPageScale		1
+		ShowPageBoundaries	off
+		ZoomFactor		"100"
+		SIDHighWatermark	"41"
+		Block {
+		  BlockType		  Inport
+		  Name			  "relay_par"
+		  SID			  "1201::36"
+		  Position		  [20, 101, 40, 119]
+		  ZOrder		  21
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "e"
+		  SID			  "1201::23"
+		  Position		  [20, 136, 40, 154]
+		  ZOrder		  9
+		  Port			  "2"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "t"
+		  SID			  "1201::28"
+		  Position		  [20, 171, 40, 189]
+		  ZOrder		  14
+		  Port			  "3"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "u_ref"
+		  SID			  "1201::37"
+		  Position		  [20, 206, 40, 224]
+		  ZOrder		  22
+		  Port			  "4"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Inport
+		  Name			  "run_exp"
+		  SID			  "1201::31"
+		  Position		  [20, 246, 40, 264]
+		  ZOrder		  17
+		  Port			  "5"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Demux
+		  Name			  " Demux "
+		  SID			  "1201::40"
+		  Ports			  [1, 1]
+		  Position		  [270, 245, 320, 285]
+		  ZOrder		  25
+		  Outputs		  "1"
+		}
+		Block {
+		  BlockType		  S-Function
+		  Name			  " SFunction "
+		  SID			  "1201::39"
+		  Tag			  "Stateflow S-Function autotuner_tito_2012a 10"
+		  Ports			  [5, 4]
+		  Position		  [180, 100, 230, 220]
+		  ZOrder		  24
+		  FunctionName		  "sf_sfun"
+		  PortCounts		  "[5 4]"
+		  EnableBusSupport	  on
+		  Port {
+		    PortNumber		    2
+		    Name		    "result"
+		    RTWStorageClass	    "Auto"
+		    DataLoggingNameMode	    "SignalName"
+		  }
+		  Port {
+		    PortNumber		    3
+		    Name		    "u"
+		    RTWStorageClass	    "Auto"
+		    DataLoggingNameMode	    "SignalName"
+		  }
+		  Port {
+		    PortNumber		    4
+		    Name		    "done"
+		    RTWStorageClass	    "Auto"
+		    DataLoggingNameMode	    "SignalName"
+		  }
+		}
+		Block {
+		  BlockType		  Terminator
+		  Name			  " Terminator "
+		  SID			  "1201::41"
+		  Position		  [460, 256, 480, 274]
+		  ZOrder		  26
+		}
+		Block {
+		  BlockType		  Outport
+		  Name			  "result"
+		  SID			  "1201::38"
+		  Position		  [460, 101, 480, 119]
+		  ZOrder		  23
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Outport
+		  Name			  "u"
+		  SID			  "1201::27"
+		  Position		  [460, 136, 480, 154]
+		  ZOrder		  13
+		  Port			  "2"
+		  IconDisplay		  "Port number"
+		}
+		Block {
+		  BlockType		  Outport
+		  Name			  "done"
+		  SID			  "1201::32"
+		  Position		  [460, 171, 480, 189]
+		  ZOrder		  18
+		  Port			  "3"
+		  IconDisplay		  "Port number"
+		}
+		Line {
+		  SrcBlock		  " SFunction "
+		  SrcPort		  1
+		  DstBlock		  " Demux "
+		  DstPort		  1
+		}
+		Line {
+		  SrcBlock		  " Demux "
+		  SrcPort		  1
+		  DstBlock		  " Terminator "
+		  DstPort		  1
+		}
+		Line {
+		  Name			  "done"
+		  Labels		  [0, 0]
+		  SrcBlock		  " SFunction "
+		  SrcPort		  4
+		  DstBlock		  "done"
+		  DstPort		  1
+		}
+		Line {
+		  Name			  "u"
+		  Labels		  [0, 0]
+		  SrcBlock		  " SFunction "
+		  SrcPort		  3
+		  DstBlock		  "u"
+		  DstPort		  1
+		}
+		Line {
+		  Name			  "result"
+		  Labels		  [0, 0]
+		  SrcBlock		  " SFunction "
+		  SrcPort		  2
+		  DstBlock		  "result"
+		  DstPort		  1
+		}
+		Line {
+		  SrcBlock		  "run_exp"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  5
+		}
+		Line {
+		  SrcBlock		  "u_ref"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  4
+		}
+		Line {
+		  SrcBlock		  "t"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  3
+		}
+		Line {
+		  SrcBlock		  "e"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  2
+		}
+		Line {
+		  SrcBlock		  "relay_par"
+		  SrcPort		  1
+		  DstBlock		  " SFunction "
+		  DstPort		  1
+		}
+	      }
+	    }
+	    Block {
+	      BlockType		      Constant
+	      Name		      "timeAfterExp"
+	      SID		      "1202"
+	      Position		      [545, 390, 575, 420]
+	      ZOrder		      -4
+	      Value		      "params.timeAfterExp"
+	    }
+	    Block {
+	      BlockType		      Outport
+	      Name		      "u"
+	      SID		      "1203"
+	      Position		      [835, 188, 865, 202]
+	      ZOrder		      4
+	      IconDisplay	      "Port number"
+	    }
+	    Block {
+	      BlockType		      Outport
+	      Name		      "done"
+	      SID		      "1204"
+	      Position		      [830, 113, 860, 127]
+	      ZOrder		      4
+	      Port		      "2"
+	      IconDisplay	      "Port number"
+	    }
+	    Block {
+	      BlockType		      Outport
+	      Name		      "result2"
+	      SID		      "1205"
+	      Position		      [730, 38, 760, 52]
+	      ZOrder		      121
+	      Port		      "3"
+	      IconDisplay	      "Port number"
+	    }
+	    Line {
+	      SrcBlock		      "Digital Clock"
+	      SrcPort		      1
+	      Points		      [30, 0]
+	      Branch {
+		Points			[0, 150]
+		DstBlock		"Constraint"
+		DstPort			1
+	      }
+	      Branch {
+		Points			[205, 0]
+		Branch {
+		  DstBlock		  "Compare\nTo Constant"
+		  DstPort		  1
+		}
+		Branch {
+		  Points		  [0, -124]
+		  Branch {
+		    Points		    [155, -1]
+		  }
+		  Branch {
+		    DstBlock		    "relay_exp\n"
+		    DstPort		    3
+		  }
+		}
+	      }
+	    }
+	    Line {
+	      SrcBlock		      "Constant"
+	      SrcPort		      1
+	      Points		      [83, 0]
+	      Branch {
+		Points			[134, 0; 0, -70]
+		DstBlock		"Switch"
+		DstPort			3
+	      }
+	      Branch {
+		Points			[0, -165]
+		DstBlock		"relay_exp\n"
+		DstPort			4
+	      }
+	    }
+	    Line {
+	      SrcBlock		      "Compare\nTo Constant"
+	      SrcPort		      1
+	      Points		      [60, 0; 0, -19]
+	      Branch {
+		DstBlock		"relay_exp\n"
+		DstPort			5
+	      }
+	      Branch {
+		Points			[250, 0]
+		DstBlock		"Switch"
+		DstPort			2
+	      }
+	    }
+	    Line {
+	      SrcBlock		      "timeAfterExp"
+	      SrcPort		      1
+	      Points		      [28, 0; 0, -10]
+	      DstBlock		      "Constraint"
+	      DstPort		      3
+	    }
+	    Line {
+	      SrcBlock		      "relay_exp\n"
+	      SrcPort		      3
+	      Points		      [0, 0]
+	      Branch {
+		Points			[0, -15]
+		DstBlock		"done"
+		DstPort			1
+	      }
+	      Branch {
+		Points			[0, 160]
+		Branch {
+		  Points		  [0, 176; -551, 0; 0, -36]
+		  DstBlock		  "AND"
+		  DstPort		  2
+		}
+		Branch {
+		  DstBlock		  "Scope"
+		  DstPort		  1
+		}
+	      }
+	    }
+	    Line {
+	      SrcBlock		      "other_done"
+	      SrcPort		      1
+	      DstBlock		      "AND"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "AND"
+	      SrcPort		      1
+	      Points		      [110, 0; 0, -50]
+	      DstBlock		      "Constraint"
+	      DstPort		      2
+	    }
+	    Line {
+	      SrcBlock		      "Constraint"
+	      SrcPort		      1
+	      DstBlock		      "Stop Simulation"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "relay_exp\n"
+	      SrcPort		      1
+	      DstBlock		      "result2"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "e"
+	      SrcPort		      1
+	      Points		      [147, 0; 0, -90]
+	      DstBlock		      "relay_exp\n"
+	      DstPort		      2
+	    }
+	    Line {
+	      SrcBlock		      "relay_exp\n"
+	      SrcPort		      2
+	      Points		      [75, 0]
+	      DstBlock		      "Switch"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "Relay_parameters"
+	      SrcPort		      1
+	      DstBlock		      "relay_exp\n"
+	      DstPort		      1
+	    }
+	    Line {
+	      SrcBlock		      "Switch"
+	      SrcPort		      1
+	      DstBlock		      "u"
+	      DstPort		      1
+	    }
+	  }
+	}
+	Block {
+	  BlockType		  SubSystem
+	  Name			  "Logger"
+	  SID			  "1206"
+	  Ports			  [1]
+	  Position		  [545, 141, 600, 179]
+	  ZOrder		  117
+	  MinAlgLoopOccurrences	  off
+	  PropExecContextOutsideSubsystem off
+	  RTWSystemCode		  "Auto"
+	  FunctionWithSeparateData off
+	  Opaque		  off
+	  RequestExecContextInheritance	off
+	  MaskHideContents	  off
+	  System {
+	    Name		    "Logger"
+	    Location		    [1911, 198, 2953, 1077]
+	    Open		    off
+	    ModelBrowserVisibility  off
+	    ModelBrowserWidth	    200
+	    ScreenColor		    "white"
+	    PaperOrientation	    "landscape"
+	    PaperPositionMode	    "auto"
+	    PaperType		    "A4"
+	    PaperUnits		    "centimeters"
+	    TiledPaperMargins	    [1.270000, 1.270000, 1.270000, 1.270000]
+	    TiledPageScale	    1
+	    ShowPageBoundaries	    off
+	    ZoomFactor		    "100"
+	    Block {
+	      BlockType		      Inport
+	      Name		      "result"
+	      SID		      "1207"
+	      Position		      [20, 43, 50, 57]
+	      ZOrder		      88
+	      IconDisplay	      "Port number"
+	      SampleTime	      "simopt.h"
+	    }
+	    Block {
+	      BlockType		      ToWorkspace
+	      Name		      "Logger"
+	      SID		      "1208"
+	      Ports		      [1]
+	      Position		      [105, 35, 165, 65]
+	      ZOrder		      87
+	      VariableName	      "result"
+	      MaxDataPoints	      "1"
+	      SampleTime	      "simopt.h"
+	      SaveFormat	      "Structure With Time"
+	    }
+	    Line {
+	      SrcBlock		      "result"
+	      SrcPort		      1
+	      DstBlock		      "Logger"
+	      DstPort		      1
+	    }
+	  }
+	}
+	Block {
+	  BlockType		  Mux
+	  Name			  "Mux"
+	  SID			  "1209"
+	  Ports			  [2, 1]
+	  Position		  [485, 141, 490, 179]
+	  ZOrder		  118
+	  ShowName		  off
+	  Inputs		  "2"
+	  DisplayOption		  "bar"
+	}
+	Block {
+	  BlockType		  Outport
+	  Name			  "u1"
+	  SID			  "1210"
+	  Position		  [405, 103, 435, 117]
+	  ZOrder		  -2
+	  IconDisplay		  "Port number"
+	}
+	Block {
+	  BlockType		  Outport
+	  Name			  "u2"
+	  SID			  "1211"
+	  Position		  [405, 193, 435, 207]
+	  ZOrder		  4
+	  Port			  "2"
+	  IconDisplay		  "Port number"
+	}
+	Line {
+	  SrcBlock		  "Mux"
+	  SrcPort		  1
+	  DstBlock		  "Logger"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "Autotuner2"
+	  SrcPort		  3
+	  Points		  [100, 0; 0, -55]
+	  DstBlock		  "Mux"
+	  DstPort		  2
+	}
+	Line {
+	  SrcBlock		  "Autotuner1"
+	  SrcPort		  3
+	  Points		  [73, 0; 0, 15]
+	  DstBlock		  "Mux"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "e2"
+	  SrcPort		  1
+	  DstBlock		  "Autotuner2"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "e1"
+	  SrcPort		  1
+	  DstBlock		  "Autotuner1"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "Autotuner2"
+	  SrcPort		  1
+	  Points		  [0, 5]
+	  DstBlock		  "u2"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "Autotuner1"
+	  SrcPort		  1
+	  Points		  [9, 0; 0, 5]
+	  DstBlock		  "u1"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "Autotuner2"
+	  SrcPort		  2
+	  Points		  [5, 0; 0, -50; -135, 0]
+	  DstBlock		  "Autotuner1"
+	  DstPort		  2
+	}
+	Line {
+	  SrcBlock		  "Autotuner1"
+	  SrcPort		  2
+	  Points		  [10, 0; 0, 60; -120, 0]
+	  DstBlock		  "Autotuner2"
+	  DstPort		  2
+	}
+      }
+    }
+    Block {
+      BlockType		      Scope
+      Name		      "u1"
+      SID		      "544"
+      Ports		      [1]
+      Position		      [695, 29, 725, 61]
+      ZOrder		      147
+      Floating		      off
+      Location		      [6, 359, 611, 539]
+      Open		      on
+      NumInputPorts	      "1"
+      List {
+	ListType		AxesTitles
+	axes1			"%<SignalLabel>"
+      }
+      List {
+	ListType		ScopeGraphics
+	FigureColor		"[0.156862745098039 0.156862745098039 0.156862745098039]"
+	AxesColor		"[0 0 0]"
+	AxesTickColor		"[0.686274509803922 0.686274509803922 0.686274509803922]"
+	LineColors		"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]"
+	LineStyles		"-|-|-|-|-|-"
+	LineWidths		"[0.5 0.5 0.5 0.5 0.5 0.5]"
+	MarkerStyles		"none|none|none|none|none|none"
+      }
+      ShowLegends	      off
+      YMin		      "0"
+      YMax		      "10"
+      SaveName		      "ScopeData1"
+      DataFormat	      "StructureWithTime"
+      LimitDataPoints	      off
+    }
+    Block {
+      BlockType		      Scope
+      Name		      "u2"
+      SID		      "1103"
+      Ports		      [1]
+      Position		      [715, 384, 745, 416]
+      ZOrder		      147
+      Floating		      off
+      Location		      [559, 332, 1164, 511]
+      Open		      on
+      NumInputPorts	      "1"
+      List {
+	ListType		AxesTitles
+	axes1			"%<SignalLabel>"
+      }
+      List {
+	ListType		ScopeGraphics
+	FigureColor		"[0.156862745098039 0.156862745098039 0.156862745098039]"
+	AxesColor		"[0 0 0]"
+	AxesTickColor		"[0.686274509803922 0.686274509803922 0.686274509803922]"
+	LineColors		"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]"
+	LineStyles		"-|-|-|-|-|-"
+	LineWidths		"[0.5 0.5 0.5 0.5 0.5 0.5]"
+	MarkerStyles		"none|none|none|none|none|none"
+      }
+      ShowLegends	      off
+      YMin		      "0"
+      YMax		      "10"
+      SaveName		      "ScopeData2"
+      DataFormat	      "StructureWithTime"
+      LimitDataPoints	      off
+    }
+    Block {
+      BlockType		      Scope
+      Name		      "y1"
+      SID		      "1033"
+      Ports		      [1]
+      Position		      [840, 174, 870, 206]
+      ZOrder		      148
+      Floating		      off
+      Location		      [6, 95, 594, 284]
+      Open		      off
+      NumInputPorts	      "1"
+      List {
+	ListType		AxesTitles
+	axes1			"%<SignalLabel>"
+      }
+      List {
+	ListType		ScopeGraphics
+	FigureColor		"[0.156862745098039 0.156862745098039 0.156862745098039]"
+	AxesColor		"[0 0 0]"
+	AxesTickColor		"[0.686274509803922 0.686274509803922 0.686274509803922]"
+	LineColors		"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]"
+	LineStyles		"-|-|-|-|-|-"
+	LineWidths		"[0.5 0.5 0.5 0.5 0.5 0.5]"
+	MarkerStyles		"none|none|none|none|none|none"
+      }
+      ShowLegends	      off
+      YMin		      "0"
+      YMax		      "10"
+      SaveName		      "ScopeData3"
+      DataFormat	      "StructureWithTime"
+      LimitDataPoints	      off
+    }
+    Block {
+      BlockType		      Scope
+      Name		      "y2"
+      SID		      "1034"
+      Ports		      [1]
+      Position		      [840, 304, 870, 336]
+      ZOrder		      148
+      Floating		      off
+      Location		      [558, 93, 1154, 313]
+      Open		      on
+      NumInputPorts	      "1"
+      ZoomMode		      "yonly"
+      List {
+	ListType		AxesTitles
+	axes1			"%<SignalLabel>"
+      }
+      List {
+	ListType		ScopeGraphics
+	FigureColor		"[0.156862745098039 0.156862745098039 0.156862745098039]"
+	AxesColor		"[0 0 0]"
+	AxesTickColor		"[0.686274509803922 0.686274509803922 0.686274509803922]"
+	LineColors		"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]"
+	LineStyles		"-|-|-|-|-|-"
+	LineWidths		"[0.5 0.5 0.5 0.5 0.5 0.5]"
+	MarkerStyles		"none|none|none|none|none|none"
+      }
+      ShowLegends	      off
+      YMin		      "0"
+      YMax		      "10"
+      SaveName		      "ScopeData5"
+      DataFormat	      "StructureWithTime"
+      LimitDataPoints	      off
+    }
+    Line {
+      SrcBlock		      "multi-NOMAD"
+      SrcPort		      1
+      Points		      [0, -10; 20, 0]
+      Branch {
+	Points			[0, -40; 380, 0]
+	Branch {
+	  Points		  [0, 15]
+	  DstBlock		  "Logger"
+	  DstPort		  1
+	}
+	Branch {
+	  Points		  [0, -70]
+	  DstBlock		  "u1"
+	  DstPort		  1
+	}
+      }
+      Branch {
+	Points			[30, 0; 0, -5]
+	DstBlock		"WoodBerry"
+	DstPort			1
+      }
+    }
+    Line {
+      SrcBlock		      "multi-NOMAD"
+      SrcPort		      2
+      Points		      [0, 15; 25, 0]
+      Branch {
+	Points			[0, 40; 400, 0]
+	Branch {
+	  Points		  [0, -20]
+	  DstBlock		  "Logger"
+	  DstPort		  3
+	}
+	Branch {
+	  Points		  [0, 160]
+	  DstBlock		  "u2"
+	  DstPort		  1
+	}
+      }
+      Branch {
+	Points			[65, 0]
+	DstBlock		"WoodBerry"
+	DstPort			2
+      }
+    }
+    Line {
+      SrcBlock		      "WoodBerry"
+      SrcPort		      1
+      Points		      [70, 0; 0, -10]
+      Branch {
+	Points			[20, 0; 0, 35; 135, 0]
+	Branch {
+	  DstBlock		  "Logger"
+	  DstPort		  2
+	}
+	Branch {
+	  Points		  [0, 15]
+	  DstBlock		  "y1"
+	  DstPort		  1
+	}
+      }
+      Branch {
+	Points			[0, -50; -440, 0]
+	DstBlock		"Sum"
+	DstPort			1
+      }
+    }
+    Line {
+      SrcBlock		      "WoodBerry"
+      SrcPort		      2
+      Points		      [60, 0; 0, 80; 25, 0]
+      Branch {
+	Points			[75, 0]
+	Branch {
+	  DstBlock		  "Logger"
+	  DstPort		  4
+	}
+	Branch {
+	  Points		  [0, 55]
+	  DstBlock		  "y2"
+	  DstPort		  1
+	}
+      }
+      Branch {
+	Points			[-5, 0; 0, 90; -445, 0; 0, -130]
+	DstBlock		"Sum1"
+	DstPort			2
+      }
+    }
+    Line {
+      SrcBlock		      "Step"
+      SrcPort		      1
+      Points		      [20, 0; 0, 45]
+      DstBlock		      "Sum"
+      DstPort		      2
+    }
+    Line {
+      SrcBlock		      "Step1"
+      SrcPort		      1
+      Points		      [30, 0]
+      DstBlock		      "Sum1"
+      DstPort		      1
+    }
+    Line {
+      SrcBlock		      "Sum"
+      SrcPort		      1
+      DstBlock		      "multi-NOMAD"
+      DstPort		      1
+    }
+    Line {
+      SrcBlock		      "Sum1"
+      SrcPort		      1
+      Points		      [25, 0]
+      DstBlock		      "multi-NOMAD"
+      DstPort		      2
+    }
+  }
+}
+# Finite State Machines
+#
+#    Stateflow Version 7.6 (R2011b) dated Jan 25 2012, 13:50:40
+#
+#
+
+
+Stateflow {
+  machine {
+    id			    1
+    name		    "autotuner_tito_2012a"
+    created		    "01-Jul-2013 12:16:13"
+    isLibrary		    0
+    firstTarget		    46
+    sfVersion		    76014001.00040001
+  }
+  chart {
+    id			    2
+    name		    "multi-NOMAD/Autotuner1/Constraint"
+    windowPosition	    [331.86 295.2 211 434]
+    viewLimits		    [0 156.75 0 153.75]
+    screen		    [1 1 2944 1280 1.25]
+    treeNode		    [0 3 0 0]
+    firstTransition	    5
+    firstJunction	    4
+    viewObj		    2
+    machine		    1
+    ssIdHighWaterMark	    9
+    decomposition	    CLUSTER_CHART
+    type		    EML_CHART
+    firstData		    6
+    chartFileNumber	    7
+    disableImplicitCasting  1
+    eml {
+      name		      "Constraint"
+    }
+  }
+  state {
+    id			    3
+    labelString		    "eML_blk_kernel()"
+    position		    [18 64.5 118 66]
+    fontSize		    12
+    chart		    2
+    treeNode		    [2 0 0 0]
+    superState		    SUBCHART
+    subviewer		    2
+    ssIdNumber		    1
+    type		    FUNC_STATE
+    decomposition	    CLUSTER_STATE
+    eml {
+      isEML		      1
+      script		      "%function stop = Constraint(tstop, time, done)\nfunction stop = Constraint(time, all_done, timeAf"
+      "terExp)\n%#codegen\npersistent tstopp first\nif isempty(tstopp)\n    tstopp = 10000;\n    first = true;\nend\nif"
+      " all_done == 1 && first \n    tstopp = time;\n    first = false;\nend\nif time > tstopp+timeAfterExp;\n    stop "
+      "= 1;\nelse\n    stop = 0;\nend"
+      editorLayout	      "100 M4x1[10 5 700 500]"
+    }
+  }
+  junction {
+    id			    4
+    position		    [23.5747 49.5747 7]
+    chart		    2
+    linkNode		    [2 0 0]
+    subviewer		    2
+    ssIdNumber		    3
+    type		    CONNECTIVE_JUNCTION
+  }
+  transition {
+    id			    5
+    labelString		    "{eML_blk_kernel();}"
+    labelPosition	    [32.125 19.875 102.544 14.964]
+    fontSize		    12
+    src {
+      intersection	      [0 0 1 0 23.5747 14.625 0 0]
+    }
+    dst {
+      id		      4
+      intersection	      [1 0 -1 0 23.5747 42.5747 0 0]
+    }
+    midPoint		    [23.5747 24.9468]
+    chart		    2
+    linkNode		    [2 0 0]
+    dataLimits		    [23.575 23.575 14.625 34.575]
+    subviewer		    2
+    drawStyle		    SMART
+    slide {
+      sticky		      BOTH_STICK
+    }
+    executionOrder	    1
+    ssIdNumber		    2
+  }
+  data {
+    id			    6
+    ssIdNumber		    5
+    name		    "stop"
+    linkNode		    [2 0 7]
+    scope		    OUTPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    7
+    ssIdNumber		    6
+    name		    "time"
+    linkNode		    [2 6 8]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    8
+    ssIdNumber		    7
+    name		    "all_done"
+    linkNode		    [2 7 9]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    9
+    ssIdNumber		    9
+    name		    "timeAfterExp"
+    linkNode		    [2 8 0]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  instance {
+    id			    10
+    name		    "multi-NOMAD/Autotuner1/Constraint"
+    machine		    1
+    chart		    2
+  }
+  chart {
+    id			    11
+    name		    "multi-NOMAD/Autotuner1/relay_exp\n"
+    windowPosition	    [359.686 -10 429 739.2]
+    viewLimits		    [0 319.2 0 430.6]
+    screen		    [1 1 2944 1280 1.25]
+    treeNode		    [0 12 0 0]
+    firstTransition	    14
+    firstJunction	    13
+    viewObj		    11
+    machine		    1
+    ssIdHighWaterMark	    17
+    decomposition	    CLUSTER_CHART
+    type		    EML_CHART
+    firstData		    15
+    chartFileNumber	    8
+    disableImplicitCasting  1
+    eml {
+      name		      "relay_exp"
+    }
+  }
+  state {
+    id			    12
+    labelString		    "eML_blk_kernel()"
+    position		    [18 64.5 118 66]
+    fontSize		    12
+    chart		    11
+    treeNode		    [11 0 0 0]
+    superState		    SUBCHART
+    subviewer		    11
+    ssIdNumber		    1
+    type		    FUNC_STATE
+    decomposition	    CLUSTER_STATE
+    eml {
+      isEML		      1
+      script		      "function [result, u, done]= relay_exp(relay_par, e,t, u_ref, run_exp)\n\n\n%%%%%%%%%% Definitions"
+      " and default values %%%%%%%%%%%%%%\ny = -e;\n% Relay parameters, values from workspace.\npersistent d1 d2 u_on u"
+      "_off h\ngamma = relay_par(11); % index 2 is gamma, 11 is gamma2 \nt_sample = relay_par(3);\nbigYup = relay_par(6"
+      ");\nrelayMaxDev = relay_par(7);\ndef_h = relay_par(8);\nnoiseMeasureTime = relay_par(9);\nmaxSwitches = relay_pa"
+      "r(12);\nystep = relay_par(13);\nustep = relay_par(14);\n\npersistent yref uref\nif isempty(d2)\n    h=def_h; % t"
+      "hese values will be re-assigned later and never used.\n    d1 = gamma;\n    d2 = 1;\n    u_on =  d1;\n    u_off "
+      "= -d2;\n    uref = 0;\n    yref = 0;\nend\n\npersistent u_old resultvec\nif isempty(u_old)\n    u_old = uref;\n "
+      "   resultvec = zeros(23,1);\nend\n\npersistent sample\nif isempty(sample)\n    sample = 0;\nend\n\npersistent st"
+      "artup Ksign\nif isempty(Ksign)\n    Ksign = 1; % Is re-assigned during at the startup phase\nend\n\npersistent p"
+      "aram done_per\nif isempty(param)\n    param = [1.1, 16, 0]; % Quadtank minfas (should be an input somehow if exi"
+      "sting PID parameters are used to bring it to its working point)\n    done_per = 0;\nend\nPID_param = param;\ndon"
+      "e = done_per;\n\n% To handle switches\npersistent switching_times switch_index \nif isempty(switching_times)\n  "
+      "  switching_times = zeros(1,20); % Shouldn't need to be so large\n    switch_index = 1;\nend\n\n%%%%%%%%% Startu"
+      "p  params %%%%%%%%%%%\npersistent a b c tff exp_t yh yl measureNoise first\nif isempty(startup)\n    tff = 5/t_s"
+      "ample; % According to Tore about 3-5s is appropriate for the startup growth \n    b = 40;\n    c = relayMaxDev/("
+      "b-1);\n    a = uref-c;\n    measureNoise = 1;\n    startup = 0;\n    yh = 0;\n    yl = 0;\n    first = true;\nen"
+      "d\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\nresult = resultvec;\nif run_exp == 0\n    u = 0;\n    PID_"
+      "param = param;\n    return\nend\n\n%%%%%%%%%%%%% Program running %%%%%%%%%%%%%%%%%\nsample = sample+1;\n\n%%%%%%"
+      "%%% Startup %%%%%%%%%%%%\nif measureNoise == 1\n    if first \n        uref = u_ref;\n        yref = y;\n       "
+      " first = false;\n        yh = yref;\n        yl = yref;\n    end\n    u = uref;\n    if sample < noiseMeasureTim"
+      "e/t_sample\n        yh = max(yh,y);\n        yl = min(yl,y);\n    else\n        noise = (yh-yl)/2;\n        yref"
+      " = (yh+yl)/2;\n        %yref = y; % Could test the latest value instead of average?\n        resultvec(15) = yre"
+      "f;\n        resultvec(16) = uref;\n        h = max(2*noise, def_h);\n        measureNoise = 0;\n        startup "
+      "= 1;\n        resultvec(23) = t;\n    end\nelseif startup == 1\n    exp_t = sample-noiseMeasureTime/t_sample;\n "
+      "   a = uref-c;\n        u = a+c*b^(exp_t/tff);\n        if u > relayMaxDev+uref\n            u = relayMaxDev+ure"
+      "f;\n        end\n        if exp_t > 1\n            ydev = y-yref; \n            if abs(ydev) > h % outside hyste"
+      "resis, stop startup and decide Ksign\n                Ksign = ydev/abs(ydev);\n                if bigYup == 1\n "
+      "                   d1 = min(relayMaxDev, gamma*abs(u-uref));\n                    d2 = d1/gamma;\n              "
+      "  else\n                    d2 = min(relayMaxDev, gamma*abs(u-uref));\n                    d1 = d2/gamma;\n     "
+      "           end\n                startup = 0;\n            elseif exp_t > tff\n                u = uref+relayMaxD"
+      "ev;\n            end\n        end\nelseif run_exp == 1\n    %%%%%% Update amplitudes %%%%%%%\n    u_on = uref+Ks"
+      "ign*d1;\n    u_off = uref-Ksign*d2;\n    %%%%%% Calculate new u %%%%%%%%%\n    u = rel_func(y,u_old,u_on, u_off,"
+      "yref,h);\nelse \n    u = 0; %Shouldn't be needed?\nend\n\n%%%%%%% At switching points %%%%%%%\nif sample>1 && (u"
+      "-uref)*(u_old-uref) < 0\n    switching_times(switch_index) = t;\n    if switch_index > 2\n        tp = switching"
+      "_times(switch_index)-switching_times(switch_index-2);\n        resultvec(19) = tp;\n    end\n    if switch_index"
+      " == 3 % Step in yref/uref after two switches\n        yref = yref+ystep*h;\n        uref = uref+(d1+d2)/2*Ksign*"
+      "ustep;\n    end\n    if switch_index > maxSwitches\n        done_per = 1;\n        resultvec(17) = t;\n    end\n"
+      "    switch_index = switch_index+1;\nend\n%%%% store data %%%%%%\nu_old = u;\nend\n\nfunction u = rel_func(y,uold"
+      ",uon,uoff,yref,h)\n  if y <= yref-h\n    u = uon;\n  elseif y < yref+h && y > yref-h\n    u = uold;\n  else u = "
+      "uoff;\n  end\nend\n\n\n\n\n\n\n\n"
+      editorLayout	      "100 M4x1[10 5 700 500]"
+    }
+  }
+  junction {
+    id			    13
+    position		    [23.5747 49.5747 7]
+    chart		    11
+    linkNode		    [11 0 0]
+    subviewer		    11
+    ssIdNumber		    3
+    type		    CONNECTIVE_JUNCTION
+  }
+  transition {
+    id			    14
+    labelString		    "{eML_blk_kernel();}"
+    labelPosition	    [32.125 19.875 100.8 18.448]
+    fontSize		    12
+    src {
+      intersection	      [0 0 1 0 23.5747 14.625 0 0]
+    }
+    dst {
+      id		      13
+      intersection	      [1 0 -1 0 23.5747 42.5747 0 0]
+    }
+    midPoint		    [23.5747 24.9468]
+    chart		    11
+    linkNode		    [11 0 0]
+    dataLimits		    [23.575 23.575 14.625 34.575]
+    subviewer		    11
+    drawStyle		    SMART
+    slide {
+      sticky		      BOTH_STICK
+    }
+    executionOrder	    1
+    ssIdNumber		    2
+  }
+  data {
+    id			    15
+    ssIdNumber		    16
+    name		    "result"
+    linkNode		    [11 0 16]
+    scope		    OUTPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    16
+    ssIdNumber		    8
+    name		    "u"
+    linkNode		    [11 15 17]
+    scope		    OUTPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    17
+    ssIdNumber		    14
+    name		    "relay_par"
+    linkNode		    [11 16 18]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    18
+    ssIdNumber		    5
+    name		    "e"
+    linkNode		    [11 17 19]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    19
+    ssIdNumber		    9
+    name		    "t"
+    linkNode		    [11 18 20]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    20
+    ssIdNumber		    15
+    name		    "u_ref"
+    linkNode		    [11 19 21]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    21
+    ssIdNumber		    11
+    name		    "run_exp"
+    linkNode		    [11 20 22]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    22
+    ssIdNumber		    4
+    name		    "done"
+    linkNode		    [11 21 0]
+    scope		    OUTPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  instance {
+    id			    23
+    name		    "multi-NOMAD/Autotuner1/relay_exp\n"
+    machine		    1
+    chart		    11
+  }
+  chart {
+    id			    24
+    name		    "multi-NOMAD/Autotuner2/Constraint"
+    windowPosition	    [331.86 295.2 211 434]
+    viewLimits		    [0 156.75 0 153.75]
+    screen		    [1 1 2944 1280 1.25]
+    treeNode		    [0 25 0 0]
+    firstTransition	    27
+    firstJunction	    26
+    viewObj		    24
+    machine		    1
+    toolbarMode		    LIBRARY_TOOLBAR
+    ssIdHighWaterMark	    9
+    decomposition	    CLUSTER_CHART
+    type		    EML_CHART
+    firstData		    28
+    chartFileNumber	    9
+    disableImplicitCasting  1
+    eml {
+      name		      "Constraint"
+    }
+  }
+  state {
+    id			    25
+    labelString		    "eML_blk_kernel()"
+    position		    [18 64.5 118 66]
+    fontSize		    12
+    chart		    24
+    treeNode		    [24 0 0 0]
+    superState		    SUBCHART
+    subviewer		    24
+    ssIdNumber		    1
+    type		    FUNC_STATE
+    decomposition	    CLUSTER_STATE
+    eml {
+      isEML		      1
+      script		      "%function stop = Constraint(tstop, time, done)\nfunction stop = Constraint(time, all_done, timeAf"
+      "terExp)\n%#codegen\npersistent tstopp first\nif isempty(tstopp)\n    tstopp = 10000;\n    first = true;\nend\nif"
+      " all_done == 1 && first \n    tstopp = time;\n    first = false;\nend\nif time > tstopp+timeAfterExp;\n    stop "
+      "= 1;\nelse\n    stop = 0;\nend"
+      editorLayout	      "100 M4x1[10 5 700 500]"
+    }
+  }
+  junction {
+    id			    26
+    position		    [23.5747 49.5747 7]
+    chart		    24
+    linkNode		    [24 0 0]
+    subviewer		    24
+    ssIdNumber		    3
+    type		    CONNECTIVE_JUNCTION
+  }
+  transition {
+    id			    27
+    labelString		    "{eML_blk_kernel();}"
+    labelPosition	    [32.125 19.875 102.544 14.964]
+    fontSize		    12
+    src {
+      intersection	      [0 0 1 0 23.5747 14.625 0 0]
+    }
+    dst {
+      id		      26
+      intersection	      [1 0 -1 0 23.5747 42.5747 0 0]
+    }
+    midPoint		    [23.5747 24.9468]
+    chart		    24
+    linkNode		    [24 0 0]
+    dataLimits		    [23.575 23.575 14.625 34.575]
+    subviewer		    24
+    drawStyle		    SMART
+    slide {
+      sticky		      BOTH_STICK
+    }
+    executionOrder	    1
+    ssIdNumber		    2
+  }
+  data {
+    id			    28
+    ssIdNumber		    5
+    name		    "stop"
+    linkNode		    [24 0 29]
+    scope		    OUTPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    29
+    ssIdNumber		    6
+    name		    "time"
+    linkNode		    [24 28 30]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    30
+    ssIdNumber		    7
+    name		    "all_done"
+    linkNode		    [24 29 31]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    31
+    ssIdNumber		    9
+    name		    "timeAfterExp"
+    linkNode		    [24 30 0]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  instance {
+    id			    32
+    name		    "multi-NOMAD/Autotuner2/Constraint"
+    machine		    1
+    chart		    24
+  }
+  chart {
+    id			    33
+    name		    "multi-NOMAD/Autotuner2/relay_exp\n"
+    windowPosition	    [359.686 -10 429 739.2]
+    viewLimits		    [0 319.2 0 430.6]
+    screen		    [1 1 2944 1280 1.25]
+    treeNode		    [0 34 0 0]
+    firstTransition	    36
+    firstJunction	    35
+    viewObj		    33
+    machine		    1
+    ssIdHighWaterMark	    17
+    decomposition	    CLUSTER_CHART
+    type		    EML_CHART
+    firstData		    37
+    chartFileNumber	    10
+    disableImplicitCasting  1
+    eml {
+      name		      "relay_exp"
+    }
+  }
+  state {
+    id			    34
+    labelString		    "eML_blk_kernel()"
+    position		    [18 64.5 118 66]
+    fontSize		    12
+    chart		    33
+    treeNode		    [33 0 0 0]
+    superState		    SUBCHART
+    subviewer		    33
+    ssIdNumber		    1
+    type		    FUNC_STATE
+    decomposition	    CLUSTER_STATE
+    eml {
+      isEML		      1
+      script		      "function [result, u, done]= relay_exp(relay_par, e,t, u_ref, run_exp)\n\n\n%%%%%%%%%% Definitions"
+      " and default values %%%%%%%%%%%%%%\ny = -e;\n% Relay parameters, values from workspace.\npersistent d1 d2 u_on u"
+      "_off h\ngamma = relay_par(2); % index 2 is gamma, 11 is gamma2 \nt_sample = relay_par(3);\nbigYup = relay_par(6)"
+      ";\nrelayMaxDev = relay_par(7);\ndef_h = relay_par(8);\nnoiseMeasureTime = relay_par(9);\nmaxSwitches = relay_par"
+      "(12);\nystep = relay_par(13);\nustep = relay_par(14);\n\npersistent yref uref\nif isempty(d2)\n    h=def_h; % th"
+      "ese values will be re-assigned later and never used. \n    d1 = gamma;\n    d2 = 1;\n    u_on =  d1;\n    u_off "
+      "= -d2;\n    uref = 0;\n    yref = 0;\nend\n\npersistent u_old resultvec\nif isempty(u_old)\n    u_old = uref;\n "
+      "   resultvec = zeros(23,1);\nend\n\npersistent sample\nif isempty(sample)\n    sample = 0;\nend\n\npersistent st"
+      "artup Ksign\nif isempty(Ksign)\n    Ksign = 1;  % Is re-assigned during at the startup phase\nend\n\npersistent "
+      "param done_per\nif isempty(param)\n    param = [1.1, 16, 0]; % Quadtank minfas (should be an input somehow if ex"
+      "isting PID parameters are used to bring it to its working point)\n    done_per = 0;\nend\nPID_param = param;\ndo"
+      "ne = done_per;\n\n% To handle switches\npersistent switching_times switch_index \nif isempty(switching_times)\n "
+      "   switching_times = zeros(1,20);\n    switch_index = 1;\nend\n\n%%%%%%%%% Startup  params %%%%%%%%%%%\npersiste"
+      "nt a b c tff exp_t yh yl measureNoise first\nif isempty(startup)\n    tff = 5/t_sample; % According to Tore abou"
+      "t 3-5s is appropriate for the startup growth \n    b = 40;\n    c = relayMaxDev/(b-1);\n    a = uref-c;\n    mea"
+      "sureNoise = 1;\n    startup = 0;\n    yh = 0;\n    yl = 0;\n    first = true;\nend\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
+      "%%%%%%%%%%%%%%%%%%%\n\nresult = resultvec;\nif run_exp == 0\n    u = 0;\n    PID_param = param;\n    return\nend"
+      "\n\n%%%%%%%%%%%%% Program running %%%%%%%%%%%%%%%%%\nsample = sample+1;\n\n%%%%%%%%% Startup %%%%%%%%%%%%\nif me"
+      "asureNoise == 1\n    if first \n        uref = u_ref;\n        yref = y;\n        first = false;\n        yh = y"
+      "ref;\n        yl = yref;\n    end\n    u = uref;\n    if sample < noiseMeasureTime/t_sample\n        yh = max(yh"
+      ",y);\n        yl = min(yl,y);\n    else\n        noise = (yh-yl)/2;\n        yref = (yh+yl)/2;\n        %yref = "
+      "y; % Could test the latest value instead of average?\n        resultvec(15) = yref;\n        resultvec(16) = ure"
+      "f;\n        h = max(2*noise, def_h);\n        measureNoise = 0;\n        startup = 1;\n        resultvec(23) = t"
+      ";\n    end\nelseif startup == 1\n    exp_t = sample-noiseMeasureTime/t_sample;\n    a = uref-c;\n        u = a+c"
+      "*b^(exp_t/tff);\n        if u > relayMaxDev+uref\n            u = relayMaxDev+uref;\n        end\n        if exp"
+      "_t > 1\n            ydev = y-yref; \n            if abs(ydev) > h % outside hysteresis, stop startup and decide "
+      "Ksign\n                Ksign = ydev/abs(ydev);\n                if bigYup == 1\n                    d1 = min(rel"
+      "ayMaxDev, gamma*abs(u-uref));\n                    d2 = d1/gamma;\n                else\n                    d2 "
+      "= min(relayMaxDev, gamma*abs(u-uref));\n                    d1 = d2/gamma;\n                end\n               "
+      " startup = 0;\n            elseif exp_t > tff\n                u = uref+relayMaxDev;\n            end\n        e"
+      "nd\nelseif run_exp == 1\n    %%%%%% Update amplitudes %%%%%%%\n    u_on = uref+Ksign*d1;\n    u_off = uref-Ksign"
+      "*d2;\n    %%%%%% Calculate new u %%%%%%%%%\n    u = rel_func(y,u_old,u_on, u_off,yref,h);\nelse \n    u = 0; % S"
+      "houldn't be needed?\nend\n\n%%%%%%% At switching points %%%%%%%\nif sample>1 && (u-uref)*(u_old-uref) < 0\n    s"
+      "witching_times(switch_index) = t;\n    if switch_index > 2\n        tp = switching_times(switch_index)-switching"
+      "_times(switch_index-2);\n        resultvec(19) = tp;\n    end\n    if switch_index == 3 % Step in yref/uref afte"
+      "r two switches\n        yref = yref+ystep*h;\n        uref = uref+(d1+d2)/2*Ksign*ustep;\n    end\n    if switch"
+      "_index > maxSwitches\n        done_per = 1;\n        resultvec(17) = t;\n    end\n    switch_index = switch_inde"
+      "x+1;\nend\n%%%% store data %%%%%%\nu_old = u;\nend\n\nfunction u = rel_func(y,uold,uon,uoff,yref,h)\n  if y <= y"
+      "ref-h\n    u = uon;\n  elseif y < yref+h && y > yref-h\n    u = uold;\n  else u = uoff;\n  end\nend\n\n\n\n\n\n\n"
+      "\n"
+      editorLayout	      "100 M4x1[10 5 700 500]"
+    }
+  }
+  junction {
+    id			    35
+    position		    [23.5747 49.5747 7]
+    chart		    33
+    linkNode		    [33 0 0]
+    subviewer		    33
+    ssIdNumber		    3
+    type		    CONNECTIVE_JUNCTION
+  }
+  transition {
+    id			    36
+    labelString		    "{eML_blk_kernel();}"
+    labelPosition	    [32.125 19.875 100.8 18.448]
+    fontSize		    12
+    src {
+      intersection	      [0 0 1 0 23.5747 14.625 0 0]
+    }
+    dst {
+      id		      35
+      intersection	      [1 0 -1 0 23.5747 42.5747 0 0]
+    }
+    midPoint		    [23.5747 24.9468]
+    chart		    33
+    linkNode		    [33 0 0]
+    dataLimits		    [23.575 23.575 14.625 34.575]
+    subviewer		    33
+    drawStyle		    SMART
+    slide {
+      sticky		      BOTH_STICK
+    }
+    executionOrder	    1
+    ssIdNumber		    2
+  }
+  data {
+    id			    37
+    ssIdNumber		    16
+    name		    "result"
+    linkNode		    [33 0 38]
+    scope		    OUTPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    38
+    ssIdNumber		    8
+    name		    "u"
+    linkNode		    [33 37 39]
+    scope		    OUTPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    39
+    ssIdNumber		    14
+    name		    "relay_par"
+    linkNode		    [33 38 40]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    40
+    ssIdNumber		    5
+    name		    "e"
+    linkNode		    [33 39 41]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    41
+    ssIdNumber		    9
+    name		    "t"
+    linkNode		    [33 40 42]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    42
+    ssIdNumber		    15
+    name		    "u_ref"
+    linkNode		    [33 41 43]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    43
+    ssIdNumber		    11
+    name		    "run_exp"
+    linkNode		    [33 42 44]
+    scope		    INPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+	isSigned		1
+	wordLength		"16"
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_INHERITED
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  data {
+    id			    44
+    ssIdNumber		    4
+    name		    "done"
+    linkNode		    [33 43 0]
+    scope		    OUTPUT_DATA
+    machine		    1
+    props {
+      array {
+	size			"-1"
+      }
+      type {
+	method			SF_INHERITED_TYPE
+	primitive		SF_DOUBLE_TYPE
+      }
+      complexity	      SF_COMPLEX_INHERITED
+      frame		      SF_FRAME_NO
+    }
+    dataType		    "Inherit: Same as Simulink"
+  }
+  instance {
+    id			    45
+    name		    "multi-NOMAD/Autotuner2/relay_exp\n"
+    machine		    1
+    chart		    33
+  }
+  target {
+    id			    46
+    name		    "sfun"
+    description		    "Default Simulink S-Function Target."
+    machine		    1
+    linkNode		    [1 0 0]
+  }
+}
diff --git a/Autotuners/controlled_process_siso_2012a.mdl b/Autotuners/controlled_process_siso_2012a.mdl
new file mode 100644
index 0000000000000000000000000000000000000000..68b938ebc068696f5edb7b09e96259dd944bf0bd
--- /dev/null
+++ b/Autotuners/controlled_process_siso_2012a.mdl
@@ -0,0 +1,1084 @@
+Model {
+  Name			  "controlled_process_siso_2012a"
+  Version		  7.9
+  MdlSubVersion		  0
+  GraphicalInterface {
+    NumRootInports	    0
+    NumRootOutports	    0
+    ParameterArgumentNames  ""
+    ComputedModelVersion    "1.649"
+    NumModelReferences	    0
+    NumTestPointedSignals   0
+  }
+  SavedCharacterEncoding  "UTF-8"
+  SaveDefaultBlockParams  on
+  ScopeRefreshTime	  0.035000
+  OverrideScopeRefreshTime off
+  DisableAllScopes	  off
+  DataTypeOverride	  "UseLocalSettings"
+  DataTypeOverrideAppliesTo "AllNumericTypes"
+  MinMaxOverflowLogging	  "UseLocalSettings"
+  MinMaxOverflowArchiveMode "Overwrite"
+  FPTRunName		  "Run 1"
+  MaxMDLFileLineLength	  120
+  Created		  "Sun Jun 12 02:17:00 2005"
+  Creator		  "josefinb"
+  UpdateHistory		  "UpdateHistoryNever"
+  ModifiedByFormat	  "%<Auto>"
+  LastModifiedBy	  "josefinb"
+  ModifiedDateFormat	  "%<Auto>"
+  LastModifiedDate	  "Fri Dec 08 12:47:22 2017"
+  RTWModifiedTimeStamp	  434637984
+  ModelVersionFormat	  "1.%<AutoIncrement:649>"
+  ConfigurationManager	  "none"
+  SampleTimeColors	  off
+  SampleTimeAnnotations	  off
+  LibraryLinkDisplay	  "none"
+  WideLines		  off
+  ShowLineDimensions	  on
+  ShowPortDataTypes	  off
+  ShowDesignRanges	  off
+  ShowLoopsOnError	  on
+  IgnoreBidirectionalLines off
+  ShowStorageClass	  off
+  ShowTestPointIcons	  on
+  ShowSignalResolutionIcons on
+  ShowViewerIcons	  on
+  SortedOrder		  off
+  ExecutionContextIcon	  on
+  ShowLinearizationAnnotations on
+  BlockNameDataTip	  off
+  BlockParametersDataTip  on
+  BlockDescriptionStringDataTip	off
+  ToolBar		  on
+  StatusBar		  on
+  BrowserShowLibraryLinks off
+  BrowserLookUnderMasks	  off
+  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
+  CovForceBlockReductionOff on
+  covSaveCumulativeToWorkspaceVar on
+  CovSaveSingleToWorkspaceVar on
+  CovCumulativeVarName	  "covCumulativeData"
+  CovCumulativeReport	  off
+  CovReportOnPause	  on
+  CovModelRefEnable	  "Off"
+  CovExternalEMLEnable	  off
+  ExtModeBatchMode	  off
+  ExtModeEnableFloating	  on
+  ExtModeTrigType	  "manual"
+  ExtModeTrigMode	  "oneshot"
+  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	  off
+  ExtModeSkipDownloadWhenConnect off
+  ExtModeLogAll		  on
+  ExtModeAutoUpdateStatusClock on
+  BufferReuse		  on
+  ShowModelReferenceBlockVersion off
+  ShowModelReferenceBlockIO off
+  Array {
+    Type		    "Handle"
+    Dimension		    1
+    Simulink.ConfigSet {
+      $ObjectID		      1
+      Version		      "1.12.0"
+      Array {
+	Type			"Handle"
+	Dimension		8
+	Simulink.SolverCC {
+	  $ObjectID		  2
+	  Version		  "1.12.0"
+	  StartTime		  "0.0"
+	  StopTime		  "simopt.Tf"
+	  AbsTol		  "auto"
+	  FixedStep		  "simopt.h"
+	  InitialStep		  "auto"
+	  MaxNumMinSteps	  "-1"
+	  MaxOrder		  5
+	  ZcThreshold		  "auto"
+	  ConsecutiveZCsStepRelTol "10*128*eps"
+	  MaxConsecutiveZCs	  "1000"
+	  ExtrapolationOrder	  4
+	  NumberNewtonIterations  1
+	  MaxStep		  "auto"
+	  MinStep		  "auto"
+	  MaxConsecutiveMinStep	  "1"
+	  RelTol		  "1e-3"
+	  SolverMode		  "Auto"
+	  EnableConcurrentExecution off
+	  ConcurrentTasks	  off
+	  Solver		  "ode3"
+	  SolverName		  "ode3"
+	  SolverJacobianMethodControl "auto"
+	  ShapePreserveControl	  "DisableAll"
+	  ZeroCrossControl	  "UseLocalSettings"
+	  ZeroCrossAlgorithm	  "Nonadaptive"
+	  AlgebraicLoopSolver	  "TrustRegion"
+	  SolverResetMethod	  "Fast"
+	  PositivePriorityOrder	  off
+	  AutoInsertRateTranBlk	  off
+	  SampleTimeConstraint	  "Unconstrained"
+	  InsertRTBMode		  "Whenever possible"
+	}
+	Simulink.DataIOCC {
+	  $ObjectID		  3
+	  Version		  "1.12.0"
+	  Decimation		  "1"
+	  ExternalInput		  "[t, u]"
+	  FinalStateName	  "xf"
+	  InitialState		  "x0"
+	  LimitDataPoints	  off
+	  MaxDataPoints		  "1000"
+	  LoadExternalInput	  off
+	  LoadInitialState	  off
+	  SaveFinalState	  off
+	  SaveCompleteFinalSimState on
+	  SaveFormat		  "Array"
+	  SignalLoggingSaveFormat "ModelDataLogs"
+	  SaveOutput		  on
+	  SaveState		  off
+	  SignalLogging		  on
+	  DSMLogging		  on
+	  InspectSignalLogs	  off
+	  SaveTime		  on
+	  ReturnWorkspaceOutputs  off
+	  StateSaveName		  "xout"
+	  TimeSaveName		  "tout"
+	  OutputSaveName	  "yout"
+	  SignalLoggingName	  "logsout"
+	  DSMLoggingName	  "dsmout"
+	  OutputOption		  "RefineOutputTimes"
+	  OutputTimes		  "[]"
+	  ReturnWorkspaceOutputsName "out"
+	  Refine		  "1"
+	}
+	Simulink.OptimizationCC {
+	  $ObjectID		  4
+	  Version		  "1.12.0"
+	  BlockReduction	  off
+	  BooleanDataType	  off
+	  ConditionallyExecuteInputs on
+	  InlineParams		  off
+	  UseIntDivNetSlope	  off
+	  UseFloatMulNetSlope	  off
+	  UseSpecifiedMinMax	  off
+	  InlineInvariantSignals  off
+	  OptimizeBlockIOStorage  on
+	  BufferReuse		  on
+	  EnhancedBackFolding	  off
+	  StrengthReduction	  off
+	  ExpressionFolding	  on
+	  BooleansAsBitfields	  off
+	  BitfieldContainerType	  "uint_T"
+	  EnableMemcpy		  on
+	  MemcpyThreshold	  64
+	  PassReuseOutputArgsAs	  "Structure reference"
+	  ExpressionDepthLimit	  2147483647
+	  FoldNonRolledExpr	  on
+	  LocalBlockOutputs	  on
+	  RollThreshold		  5
+	  SystemCodeInlineAuto	  off
+	  StateBitsets		  off
+	  DataBitsets		  off
+	  UseTempVars		  off
+	  ZeroExternalMemoryAtStartup on
+	  ZeroInternalMemoryAtStartup on
+	  InitFltsAndDblsToZero	  on
+	  NoFixptDivByZeroProtection off
+	  EfficientFloat2IntCast  off
+	  EfficientMapNaN2IntZero on
+	  OptimizeModelRefInitCode off
+	  LifeSpan		  "inf"
+	  MaxStackSize		  "Inherit from target"
+	  BufferReusableBoundary  on
+	  SimCompilerOptimization "Off"
+	  AccelVerboseBuild	  off
+	  ParallelExecutionInRapidAccelerator on
+	}
+	Simulink.DebuggingCC {
+	  $ObjectID		  5
+	  Version		  "1.12.0"
+	  RTPrefix		  "error"
+	  ConsistencyChecking	  "none"
+	  ArrayBoundsChecking	  "none"
+	  SignalInfNanChecking	  "none"
+	  SignalRangeChecking	  "none"
+	  ReadBeforeWriteMsg	  "UseLocalSettings"
+	  WriteAfterWriteMsg	  "UseLocalSettings"
+	  WriteAfterReadMsg	  "UseLocalSettings"
+	  AlgebraicLoopMsg	  "warning"
+	  ArtificialAlgebraicLoopMsg "warning"
+	  SaveWithDisabledLinksMsg "warning"
+	  SaveWithParameterizedLinksMsg	"none"
+	  CheckSSInitialOutputMsg on
+	  UnderspecifiedInitializationDetection	"Classic"
+	  MergeDetectMultiDrivingBlocksExec "none"
+	  CheckExecutionContextPreStartOutputMsg off
+	  CheckExecutionContextRuntimeOutputMsg	off
+	  SignalResolutionControl "TryResolveAllWithWarning"
+	  BlockPriorityViolationMsg "warning"
+	  MinStepSizeMsg	  "warning"
+	  TimeAdjustmentMsg	  "none"
+	  MaxConsecutiveZCsMsg	  "error"
+	  MaskedZcDiagnostic	  "warning"
+	  IgnoredZcDiagnostic	  "warning"
+	  SolverPrmCheckMsg	  "none"
+	  InheritedTsInSrcMsg	  "warning"
+	  DiscreteInheritContinuousMsg "warning"
+	  MultiTaskDSMMsg	  "warning"
+	  MultiTaskCondExecSysMsg "none"
+	  MultiTaskRateTransMsg	  "error"
+	  SingleTaskRateTransMsg  "none"
+	  TasksWithSamePriorityMsg "warning"
+	  SigSpecEnsureSampleTimeMsg "warning"
+	  CheckMatrixSingularityMsg "none"
+	  IntegerOverflowMsg	  "warning"
+	  Int32ToFloatConvMsg	  "warning"
+	  ParameterDowncastMsg	  "error"
+	  ParameterOverflowMsg	  "error"
+	  ParameterUnderflowMsg	  "none"
+	  ParameterPrecisionLossMsg "warning"
+	  ParameterTunabilityLossMsg "warning"
+	  FixptConstUnderflowMsg  "none"
+	  FixptConstOverflowMsg	  "none"
+	  FixptConstPrecisionLossMsg "none"
+	  UnderSpecifiedDataTypeMsg "none"
+	  UnnecessaryDatatypeConvMsg "none"
+	  VectorMatrixConversionMsg "none"
+	  InvalidFcnCallConnMsg	  "error"
+	  FcnCallInpInsideContextMsg "Use local settings"
+	  SignalLabelMismatchMsg  "none"
+	  UnconnectedInputMsg	  "warning"
+	  UnconnectedOutputMsg	  "warning"
+	  UnconnectedLineMsg	  "warning"
+	  SFcnCompatibilityMsg	  "none"
+	  FrameProcessingCompatibilityMsg "error"
+	  UniqueDataStoreMsg	  "none"
+	  BusObjectLabelMismatch  "warning"
+	  RootOutportRequireBusObject "warning"
+	  AssertControl		  "UseLocalSettings"
+	  EnableOverflowDetection off
+	  ModelReferenceIOMsg	  "none"
+	  ModelReferenceMultiInstanceNormalModeStructChecksumCheck "error"
+	  ModelReferenceVersionMismatchMessage "none"
+	  ModelReferenceIOMismatchMessage "none"
+	  ModelReferenceCSMismatchMessage "none"
+	  UnknownTsInhSupMsg	  "warning"
+	  ModelReferenceDataLoggingMessage "warning"
+	  ModelReferenceSymbolNameMessage "warning"
+	  ModelReferenceExtraNoncontSigs "error"
+	  StateNameClashWarn	  "warning"
+	  SimStateInterfaceChecksumMismatchMsg "warning"
+	  SimStateOlderReleaseMsg "error"
+	  InitInArrayFormatMsg	  "warning"
+	  StrictBusMsg		  "ErrorLevel1"
+	  BusNameAdapt		  "WarnAndRepair"
+	  NonBusSignalsTreatedAsBus "none"
+	  LoggingUnavailableSignals "error"
+	  BlockIODiagnostic	  "none"
+	  SFUnusedDataAndEventsDiag "warning"
+	  SFUnexpectedBacktrackingDiag "warning"
+	  SFInvalidInputDataAccessInChartInitDiag "warning"
+	  SFNoUnconditionalDefaultTransitionDiag "warning"
+	  SFTransitionOutsideNaturalParentDiag "warning"
+	  SFUnconditionalTransitionShadowingDiag "warning"
+	}
+	Simulink.HardwareCC {
+	  $ObjectID		  6
+	  Version		  "1.12.0"
+	  ProdBitPerChar	  8
+	  ProdBitPerShort	  16
+	  ProdBitPerInt		  32
+	  ProdBitPerLong	  32
+	  ProdBitPerFloat	  32
+	  ProdBitPerDouble	  64
+	  ProdBitPerPointer	  32
+	  ProdLargestAtomicInteger "Char"
+	  ProdLargestAtomicFloat  "None"
+	  ProdIntDivRoundTo	  "Undefined"
+	  ProdEndianess		  "Unspecified"
+	  ProdWordSize		  32
+	  ProdShiftRightIntArith  on
+	  ProdHWDeviceType	  "32-bit Generic"
+	  TargetBitPerChar	  8
+	  TargetBitPerShort	  16
+	  TargetBitPerInt	  32
+	  TargetBitPerLong	  32
+	  TargetBitPerFloat	  32
+	  TargetBitPerDouble	  64
+	  TargetBitPerPointer	  32
+	  TargetLargestAtomicInteger "Char"
+	  TargetLargestAtomicFloat "None"
+	  TargetShiftRightIntArith on
+	  TargetIntDivRoundTo	  "Undefined"
+	  TargetEndianess	  "Unspecified"
+	  TargetWordSize	  32
+	  TargetTypeEmulationWarnSuppressLevel 0
+	  TargetPreprocMaxBitsSint 32
+	  TargetPreprocMaxBitsUint 32
+	  TargetHWDeviceType	  "Specified"
+	  TargetUnknown		  on
+	  ProdEqTarget		  on
+	}
+	Simulink.ModelReferenceCC {
+	  $ObjectID		  7
+	  Version		  "1.12.0"
+	  UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange"
+	  CheckModelReferenceTargetMessage "error"
+	  EnableParallelModelReferenceBuilds off
+	  ParallelModelReferenceErrorOnInvalidPool on
+	  ParallelModelReferenceMATLABWorkerInit "None"
+	  ModelReferenceNumInstancesAllowed "Multi"
+	  PropagateVarSize	  "Infer from blocks in model"
+	  ModelReferencePassRootInputsByReference on
+	  ModelReferenceMinAlgLoopOccurrences off
+	  PropagateSignalLabelsOutOfModel off
+	  SupportModelReferenceSimTargetCustomCode off
+	}
+	Simulink.SFSimCC {
+	  $ObjectID		  8
+	  Version		  "1.12.0"
+	  SFSimEnableDebug	  on
+	  SFSimOverflowDetection  on
+	  SFSimEcho		  on
+	  SimBlas		  on
+	  SimCtrlC		  on
+	  SimExtrinsic		  on
+	  SimIntegrity		  on
+	  SimUseLocalCustomCode	  off
+	  SimParseCustomCode	  on
+	  SimBuildMode		  "sf_incremental_build"
+	}
+	Simulink.RTWCC {
+	  $BackupClass		  "Simulink.RTWCC"
+	  $ObjectID		  9
+	  Version		  "1.12.0"
+	  SystemTargetFile	  "grt.tlc"
+	  GenCodeOnly		  off
+	  MakeCommand		  "make_rtw"
+	  GenerateMakefile	  on
+	  TemplateMakefile	  "grt_default_tmf"
+	  GenerateReport	  off
+	  SaveLog		  off
+	  RTWVerbose		  on
+	  RetainRTWFile		  off
+	  ProfileTLC		  off
+	  TLCDebug		  off
+	  TLCCoverage		  off
+	  TLCAssert		  off
+	  ProcessScriptMode	  "Default"
+	  ConfigurationMode	  "Optimized"
+	  ConfigAtBuild		  off
+	  RTWUseLocalCustomCode	  off
+	  RTWUseSimCustomCode	  off
+	  IncludeHyperlinkInReport off
+	  LaunchReport		  off
+	  TargetLang		  "C"
+	  IncludeBusHierarchyInRTWFileBlockHierarchyMap	off
+	  IncludeERTFirstTime	  off
+	  GenerateTraceInfo	  off
+	  GenerateTraceReport	  off
+	  GenerateTraceReportSl	  off
+	  GenerateTraceReportSf	  off
+	  GenerateTraceReportEml  off
+	  GenerateCodeInfo	  off
+	  GenerateWebview	  off
+	  GenerateCodeMetricsReport off
+	  GenerateCodeReplacementReport	off
+	  RTWCompilerOptimization "Off"
+	  CheckMdlBeforeBuild	  "Off"
+	  CustomRebuildMode	  "OnUpdate"
+	  Array {
+	    Type		    "Handle"
+	    Dimension		    2
+	    Simulink.CodeAppCC {
+	      $ObjectID		      10
+	      Version		      "1.12.0"
+	      ForceParamTrailComments off
+	      GenerateComments	      on
+	      IgnoreCustomStorageClasses on
+	      IgnoreTestpoints	      off
+	      IncHierarchyInIds	      off
+	      MaxIdLength	      31
+	      PreserveName	      off
+	      PreserveNameWithParent  off
+	      ShowEliminatedStatement off
+	      IncAutoGenComments      off
+	      SimulinkDataObjDesc     off
+	      SFDataObjDesc	      off
+	      MATLABFcnDesc	      off
+	      IncDataTypeInIds	      off
+	      MangleLength	      1
+	      CustomSymbolStrGlobalVar "$R$N$M"
+	      CustomSymbolStrType     "$N$R$M_T"
+	      CustomSymbolStrField    "$N$M"
+	      CustomSymbolStrFcn      "$R$N$M$F"
+	      CustomSymbolStrFcnArg   "rt$I$N$M"
+	      CustomSymbolStrBlkIO    "rtb_$N$M"
+	      CustomSymbolStrTmpVar   "$N$M"
+	      CustomSymbolStrMacro    "$R$N$M"
+	      DefineNamingRule	      "None"
+	      ParamNamingRule	      "None"
+	      SignalNamingRule	      "None"
+	      InsertBlockDesc	      off
+	      InsertPolySpaceComments off
+	      SimulinkBlockComments   on
+	      MATLABSourceComments    off
+	      EnableCustomComments    off
+	      InlinedPrmAccess	      "Literals"
+	      ReqsInCode	      off
+	      UseSimReservedNames     off
+	    }
+	    Simulink.GRTTargetCC {
+	      $BackupClass	      "Simulink.TargetCC"
+	      $ObjectID		      11
+	      Version		      "1.12.0"
+	      Array {
+		Type			"Cell"
+		Dimension		2
+		Cell			"MultiInstanceERTCode"
+		Cell			"CombineOutputUpdateFcns"
+		PropName		"DisabledProps"
+	      }
+	      TargetFcnLib	      "ansi_tfl_tmw.mat"
+	      TargetLibSuffix	      ""
+	      TargetPreCompLibLocation ""
+	      CodeReplacementLibrary  "C89/C90 (ANSI)"
+	      UtilityFuncGeneration   "Auto"
+	      ERTMultiwordTypeDef     "System defined"
+	      CodeExecutionProfiling  off
+	      ERTMultiwordLength      256
+	      MultiwordLength	      2048
+	      GenerateFullHeader      on
+	      GenerateSampleERTMain   off
+	      GenerateTestInterfaces  off
+	      IsPILTarget	      off
+	      ModelReferenceCompliant off
+	      ParMdlRefBuildCompliant on
+	      CompOptLevelCompliant   on
+	      ConcurrentExecutionCompliant on
+	      IncludeMdlTerminateFcn  on
+	      GeneratePreprocessorConditionals "Disable all"
+	      CombineOutputUpdateFcns off
+	      CombineSignalStateStructs	off
+	      SuppressErrorStatus     off
+	      ERTFirstTimeCompliant   off
+	      IncludeFileDelimiter    "Auto"
+	      ERTCustomFileBanners    off
+	      SupportAbsoluteTime     on
+	      LogVarNameModifier      "rt_"
+	      MatFileLogging	      off
+	      MultiInstanceERTCode    off
+	      SupportNonFinite	      on
+	      SupportComplex	      on
+	      PurelyIntegerCode	      off
+	      SupportContinuousTime   on
+	      SupportNonInlinedSFcns  on
+	      SupportVariableSizeSignals off
+	      EnableShiftOperators    on
+	      ParenthesesLevel	      "Nominal"
+	      PortableWordSizes	      off
+	      ModelStepFunctionPrototypeControlCompliant off
+	      CPPClassGenCompliant    off
+	      AutosarCompliant	      off
+	      GRTInterface	      on
+	      UseMalloc		      off
+	      ExtMode		      off
+	      ExtModeStaticAlloc      off
+	      ExtModeTesting	      off
+	      ExtModeStaticAllocSize  1000000
+	      ExtModeTransport	      0
+	      ExtModeMexFile	      "ext_comm"
+	      ExtModeIntrfLevel	      "Level1"
+	      RTWCAPISignals	      off
+	      RTWCAPIParams	      off
+	      RTWCAPIStates	      off
+	      RTWCAPIRootIO	      off
+	      GenerateASAP2	      off
+	    }
+	    PropName		    "Components"
+	  }
+	}
+	PropName		"Components"
+      }
+      Name		      "Configuration"
+      CurrentDlgPage	      "Solver"
+      ConfigPrmDlgPosition     [ 295, 27, 1148, 709 ] 
+    }
+    PropName		    "ConfigurationSets"
+  }
+  Simulink.ConfigSet {
+    $PropName		    "ActiveConfigurationSet"
+    $ObjectID		    1
+  }
+  ExplicitPartitioning	  off
+  BlockDefaults {
+    ForegroundColor	    "black"
+    BackgroundColor	    "white"
+    DropShadow		    off
+    NamePlacement	    "normal"
+    FontName		    "Helvetica"
+    FontSize		    10
+    FontWeight		    "normal"
+    FontAngle		    "normal"
+    ShowName		    on
+    BlockRotation	    0
+    BlockMirror		    off
+  }
+  AnnotationDefaults {
+    HorizontalAlignment	    "center"
+    VerticalAlignment	    "middle"
+    ForegroundColor	    "black"
+    BackgroundColor	    "white"
+    DropShadow		    off
+    FontName		    "Helvetica"
+    FontSize		    10
+    FontWeight		    "normal"
+    FontAngle		    "normal"
+    UseDisplayTextAsClickCallback off
+  }
+  LineDefaults {
+    FontName		    "Helvetica"
+    FontSize		    9
+    FontWeight		    "normal"
+    FontAngle		    "normal"
+  }
+  BlockParameterDefaults {
+    Block {
+      BlockType		      Inport
+      Port		      "1"
+      OutputFunctionCall      off
+      OutMin		      "[]"
+      OutMax		      "[]"
+      OutDataTypeStr	      "Inherit: auto"
+      LockScale		      off
+      BusOutputAsStruct	      off
+      PortDimensions	      "-1"
+      VarSizeSig	      "Inherit"
+      SampleTime	      "-1"
+      SignalType	      "auto"
+      SamplingMode	      "auto"
+      LatchByDelayingOutsideSignal off
+      LatchInputForFeedbackSignals off
+      Interpolate	      on
+    }
+    Block {
+      BlockType		      Mux
+      Inputs		      "4"
+      DisplayOption	      "none"
+      UseBusObject	      off
+      BusObject		      "BusObject"
+      NonVirtualBus	      off
+    }
+    Block {
+      BlockType		      Outport
+      Port		      "1"
+      OutMin		      "[]"
+      OutMax		      "[]"
+      OutDataTypeStr	      "Inherit: auto"
+      LockScale		      off
+      BusOutputAsStruct	      off
+      PortDimensions	      "-1"
+      VarSizeSig	      "Inherit"
+      SampleTime	      "-1"
+      SignalType	      "auto"
+      SamplingMode	      "auto"
+      SourceOfInitialOutputValue "Dialog"
+      OutputWhenDisabled      "held"
+      InitialOutput	      "[]"
+    }
+    Block {
+      BlockType		      Scope
+      ModelBased	      off
+      TickLabels	      "OneTimeTick"
+      ZoomMode		      "on"
+      Grid		      "on"
+      TimeRange		      "auto"
+      YMin		      "-5"
+      YMax		      "5"
+      SaveToWorkspace	      off
+      SaveName		      "ScopeData"
+      DataFormat	      "Array"
+      LimitDataPoints	      on
+      MaxDataPoints	      "5000"
+      Decimation	      "1"
+      SampleInput	      off
+      SampleTime	      "-1"
+    }
+    Block {
+      BlockType		      Step
+      Time		      "1"
+      Before		      "0"
+      After		      "1"
+      SampleTime	      "-1"
+      VectorParams1D	      on
+      ZeroCross		      on
+    }
+    Block {
+      BlockType		      SubSystem
+      ShowPortLabels	      "FromPortIcon"
+      Permissions	      "ReadWrite"
+      PermitHierarchicalResolution "All"
+      TreatAsAtomicUnit	      off
+      CheckFcnCallInpInsideContextMsg off
+      SystemSampleTime	      "-1"
+      RTWFcnNameOpts	      "Auto"
+      RTWFileNameOpts	      "Auto"
+      RTWMemSecFuncInitTerm   "Inherit from model"
+      RTWMemSecFuncExecute    "Inherit from model"
+      RTWMemSecDataConstants  "Inherit from model"
+      RTWMemSecDataInternal   "Inherit from model"
+      RTWMemSecDataParameters "Inherit from model"
+      SimViewingDevice	      off
+      DataTypeOverride	      "UseLocalSettings"
+      DataTypeOverrideAppliesTo	"AllNumericTypes"
+      MinMaxOverflowLogging   "UseLocalSettings"
+      SFBlockType	      "NONE"
+      Variant		      off
+      GeneratePreprocessorConditionals off
+    }
+    Block {
+      BlockType		      Sum
+      IconShape		      "rectangular"
+      Inputs		      "++"
+      CollapseMode	      "All dimensions"
+      CollapseDim	      "1"
+      InputSameDT	      on
+      AccumDataTypeStr	      "Inherit: Inherit via internal rule"
+      OutMin		      "[]"
+      OutMax		      "[]"
+      OutDataTypeStr	      "Inherit: Same as first input"
+      LockScale		      off
+      RndMeth		      "Floor"
+      SaturateOnIntegerOverflow	on
+      SampleTime	      "-1"
+    }
+    Block {
+      BlockType		      ToWorkspace
+      VariableName	      "simulink_output"
+      MaxDataPoints	      "1000"
+      Decimation	      "1"
+      SampleTime	      "0"
+      SaveFormat	      "Array"
+      FixptAsFi		      off
+      NumInputs		      "1"
+    }
+    Block {
+      BlockType		      TransferFcn
+      Numerator		      "[1]"
+      Denominator	      "[1 2 1]"
+      AbsoluteTolerance	      "auto"
+      ContinuousStateAttributes	"''"
+      Realization	      "auto"
+    }
+    Block {
+      BlockType		      TransportDelay
+      DelayTime		      "1"
+      InitialOutput	      "0"
+      BufferSize	      "1024"
+      FixedBuffer	      off
+      TransDelayFeedthrough   off
+      PadeOrder		      "0"
+    }
+  }
+  System {
+    Name		    "controlled_process_siso_2012a"
+    Location		    [116, 283, 1138, 718]
+    Open		    on
+    ModelBrowserVisibility  off
+    ModelBrowserWidth	    200
+    ScreenColor		    "white"
+    PaperOrientation	    "landscape"
+    PaperPositionMode	    "auto"
+    PaperType		    "usletter"
+    PaperUnits		    "inches"
+    TiledPaperMargins	    [0.500000, 0.500000, 0.500000, 0.500000]
+    TiledPageScale	    1
+    ShowPageBoundaries	    off
+    ZoomFactor		    "100"
+    ReportName		    "simulink-default.rpt"
+    SIDHighWatermark	    "1095"
+    Block {
+      BlockType		      Scope
+      Name		      "Control"
+      SID		      "544"
+      Ports		      [1]
+      Position		      [725, 29, 755, 61]
+      ZOrder		      147
+      Floating		      off
+      Location		      [6, 494, 874, 894]
+      Open		      on
+      NumInputPorts	      "1"
+      List {
+	ListType		AxesTitles
+	axes1			"%<SignalLabel>"
+      }
+      List {
+	ListType		ScopeGraphics
+	FigureColor		"[0.156862745098039 0.156862745098039 0.156862745098039]"
+	AxesColor		"[0 0 0]"
+	AxesTickColor		"[0.686274509803922 0.686274509803922 0.686274509803922]"
+	LineColors		"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]"
+	LineStyles		"-|-|-|-|-|-"
+	LineWidths		"[0.5 0.5 0.5 0.5 0.5 0.5]"
+	MarkerStyles		"none|none|none|none|none|none"
+      }
+      ShowLegends	      off
+      YMin		      "0"
+      SaveName		      "ScopeData1"
+      DataFormat	      "StructureWithTime"
+      LimitDataPoints	      off
+    }
+    Block {
+      BlockType		      SubSystem
+      Name		      "Logger"
+      SID		      "76"
+      Ports		      [2]
+      Position		      [730, 90, 755, 210]
+      ZOrder		      91
+      MinAlgLoopOccurrences   off
+      PropExecContextOutsideSubsystem off
+      RTWSystemCode	      "Auto"
+      FunctionWithSeparateData off
+      Opaque		      off
+      RequestExecContextInheritance off
+      MaskHideContents	      off
+      System {
+	Name			"Logger"
+	Location		[199, -27, 1241, 852]
+	Open			off
+	ModelBrowserVisibility	off
+	ModelBrowserWidth	200
+	ScreenColor		"white"
+	PaperOrientation	"landscape"
+	PaperPositionMode	"auto"
+	PaperType		"usletter"
+	PaperUnits		"inches"
+	TiledPaperMargins	[0.500000, 0.500000, 0.500000, 0.500000]
+	TiledPageScale		1
+	ShowPageBoundaries	off
+	ZoomFactor		"100"
+	Block {
+	  BlockType		  Inport
+	  Name			  "u1"
+	  SID			  "77"
+	  Position		  [20, 23, 50, 37]
+	  ZOrder		  88
+	  IconDisplay		  "Port number"
+	  SampleTime		  "simopt.h"
+	}
+	Block {
+	  BlockType		  Inport
+	  Name			  "y1"
+	  SID			  "79"
+	  Position		  [20, 58, 50, 72]
+	  ZOrder		  90
+	  Port			  "2"
+	  IconDisplay		  "Port number"
+	  SampleTime		  "simopt.h"
+	}
+	Block {
+	  BlockType		  ToWorkspace
+	  Name			  "Logger"
+	  SID			  "69"
+	  Ports			  [1]
+	  Position		  [140, 75, 200, 105]
+	  ZOrder		  87
+	  VariableName		  "simout"
+	  MaxDataPoints		  "inf"
+	  SampleTime		  "simopt.h"
+	  SaveFormat		  "Structure With Time"
+	}
+	Block {
+	  BlockType		  Mux
+	  Name			  "Mux"
+	  SID			  "68"
+	  Ports			  [2, 1]
+	  Position		  [75, 12, 80, 168]
+	  ZOrder		  86
+	  ShowName		  off
+	  Inputs		  "2"
+	  DisplayOption		  "bar"
+	}
+	Line {
+	  SrcBlock		  "Mux"
+	  SrcPort		  1
+	  DstBlock		  "Logger"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "u1"
+	  SrcPort		  1
+	  Points		  [5, 0]
+	  DstBlock		  "Mux"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "y1"
+	  SrcPort		  1
+	  Points		  [3, 0; 0, 65]
+	  DstBlock		  "Mux"
+	  DstPort		  2
+	}
+      }
+    }
+    Block {
+      BlockType		      Scope
+      Name		      "Output"
+      SID		      "1033"
+      Ports		      [1]
+      Position		      [725, 244, 755, 276]
+      ZOrder		      148
+      Floating		      off
+      Location		      [1, 93, 868, 483]
+      Open		      on
+      NumInputPorts	      "1"
+      List {
+	ListType		AxesTitles
+	axes1			"%<SignalLabel>"
+      }
+      List {
+	ListType		ScopeGraphics
+	FigureColor		"[0.156862745098039 0.156862745098039 0.156862745098039]"
+	AxesColor		"[0 0 0]"
+	AxesTickColor		"[0.686274509803922 0.686274509803922 0.686274509803922]"
+	LineColors		"[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]"
+	LineStyles		"-|-|-|-|-|-"
+	LineWidths		"[0.5 0.5 0.5 0.5 0.5 0.5]"
+	MarkerStyles		"none|none|none|none|none|none"
+      }
+      ShowLegends	      off
+      YMin		      "0"
+      YMax		      "10"
+      SaveName		      "ScopeData3"
+      DataFormat	      "StructureWithTime"
+      LimitDataPoints	      off
+    }
+    Block {
+      BlockType		      Reference
+      Name		      "PID Controller\nwith filter"
+      SID		      "1084"
+      Ports		      [1, 1]
+      Position		      [130, 127, 225, 163]
+      ZOrder		      -1
+      LibraryVersion	      "1.108"
+      SourceBlock	      "cstblocks/LTI System"
+      SourceType	      "LTI Block"
+      sys		      "FC"
+      IC		      "[]"
+    }
+    Block {
+      BlockType		      SubSystem
+      Name		      "SOTD_example"
+      SID		      "1091"
+      Ports		      [1, 1]
+      Position		      [350, 116, 430, 194]
+      ZOrder		      141
+      BackgroundColor	      "gray"
+      MinAlgLoopOccurrences   off
+      PropExecContextOutsideSubsystem off
+      RTWSystemCode	      "Auto"
+      FunctionWithSeparateData off
+      Opaque		      off
+      RequestExecContextInheritance off
+      MaskHideContents	      off
+      System {
+	Name			"SOTD_example"
+	Location		[702, 184, 1771, 1063]
+	Open			off
+	ModelBrowserVisibility	off
+	ModelBrowserWidth	200
+	ScreenColor		"white"
+	PaperOrientation	"landscape"
+	PaperPositionMode	"auto"
+	PaperType		"A4"
+	PaperUnits		"centimeters"
+	TiledPaperMargins	[1.270000, 1.270000, 1.270000, 1.270000]
+	TiledPageScale		1
+	ShowPageBoundaries	off
+	ZoomFactor		"125"
+	Block {
+	  BlockType		  Inport
+	  Name			  "u"
+	  SID			  "1092"
+	  Position		  [20, 73, 50, 87]
+	  ZOrder		  106
+	  IconDisplay		  "Port number"
+	  SampleTime		  "simopt.h"
+	}
+	Block {
+	  BlockType		  TransferFcn
+	  Name			  "Transfer Fcn"
+	  SID			  "1093"
+	  Position		  [175, 62, 235, 98]
+	  ZOrder		  110
+	  Denominator		  "[1 4 6 4 1]"
+	}
+	Block {
+	  BlockType		  Outport
+	  Name			  "y"
+	  SID			  "1094"
+	  Position		  [310, 73, 340, 87]
+	  ZOrder		  105
+	  IconDisplay		  "Port number"
+	  SampleTime		  "simopt.h"
+	}
+	Line {
+	  SrcBlock		  "u"
+	  SrcPort		  1
+	  DstBlock		  "Transfer Fcn"
+	  DstPort		  1
+	}
+	Line {
+	  SrcBlock		  "Transfer Fcn"
+	  SrcPort		  1
+	  DstBlock		  "y"
+	  DstPort		  1
+	}
+      }
+    }
+    Block {
+      BlockType		      Step
+      Name		      "Step"
+      SID		      "4"
+      Position		      [15, 130, 45, 160]
+      ZOrder		      -4
+      Time		      "100"
+      Before		      "2"
+      After		      "4"
+      SampleTime	      "simopt.h"
+    }
+    Block {
+      BlockType		      Sum
+      Name		      "Sum"
+      SID		      "5"
+      Ports		      [2, 1]
+      Position		      [80, 130, 110, 160]
+      ZOrder		      -5
+      ShowName		      off
+      IconShape		      "round"
+      Inputs		      "|+-"
+    }
+    Block {
+      BlockType		      TransportDelay
+      Name		      "Transport\nDelay"
+      SID		      "1085"
+      Ports		      [1, 1]
+      Position		      [285, 140, 315, 170]
+      ZOrder		      -10
+      DelayTime		      "0"
+    }
+    Line {
+      SrcBlock		      "Step"
+      SrcPort		      1
+      DstBlock		      "Sum"
+      DstPort		      1
+    }
+    Line {
+      SrcBlock		      "PID Controller\nwith filter"
+      SrcPort		      1
+      Points		      [20, 0]
+      Branch {
+	Points			[-2, -35; 2, 0]
+	Branch {
+	  Points		  [0, -65]
+	  DstBlock		  "Control"
+	  DstPort		  1
+	}
+	Branch {
+	  Points		  [465, 0]
+	  DstBlock		  "Logger"
+	  DstPort		  1
+	}
+      }
+      Branch {
+	Points			[0, 10]
+	DstBlock		"Transport\nDelay"
+	DstPort			1
+      }
+    }
+    Line {
+      SrcBlock		      "Sum"
+      SrcPort		      1
+      DstBlock		      "PID Controller\nwith filter"
+      DstPort		      1
+    }
+    Line {
+      SrcBlock		      "SOTD_example"
+      SrcPort		      1
+      Points		      [50, 0; 0, 20; 95, 0]
+      Branch {
+	Points			[115, 0]
+	Branch {
+	  Points		  [20, 0]
+	  DstBlock		  "Logger"
+	  DstPort		  2
+	}
+	Branch {
+	  Points		  [0, 85]
+	  DstBlock		  "Output"
+	  DstPort		  1
+	}
+      }
+      Branch {
+	Points			[0, 55; -485, 0]
+	DstBlock		"Sum"
+	DstPort			2
+      }
+    }
+    Line {
+      SrcBlock		      "Transport\nDelay"
+      SrcPort		      1
+      DstBlock		      "SOTD_example"
+      DstPort		      1
+    }
+  }
+}
+# Finite State Machines
+#
+#    Stateflow Version 7.6 (R2011b) dated Jan 25 2012, 13:50:40
+#
+#
+
+
+Stateflow {
+  machine {
+    id			    1
+    name		    "controlled_process_siso_2012a"
+    created		    "01-Jul-2013 12:16:13"
+    isLibrary		    0
+    firstTarget		    2
+    sfVersion		    76014001.00040001
+  }
+  target {
+    id			    2
+    name		    "sfun"
+    description		    "Default Simulink S-Function Target."
+    machine		    1
+    linkNode		    [1 0 0]
+  }
+}
diff --git a/Autotuners/tmpdata/controllers.mat b/Autotuners/tmpdata/controllers.mat
new file mode 100644
index 0000000000000000000000000000000000000000..f40fe5981ba9e7db97805c03ce5594e9949dd0e1
Binary files /dev/null and b/Autotuners/tmpdata/controllers.mat differ
diff --git a/Autotuners/tmpdata/id_models.mat b/Autotuners/tmpdata/id_models.mat
new file mode 100644
index 0000000000000000000000000000000000000000..bd8f3986d14928760bd8ced8d5e3ce77e0f8188f
Binary files /dev/null and b/Autotuners/tmpdata/id_models.mat differ
diff --git a/Autotuners/tmpdata/params.mat b/Autotuners/tmpdata/params.mat
new file mode 100644
index 0000000000000000000000000000000000000000..9e718ea7e6f51bd0687dcd7598f4708c8b71e883
Binary files /dev/null and b/Autotuners/tmpdata/params.mat differ
diff --git a/Autotuners/tmpdata/sim_data.mat b/Autotuners/tmpdata/sim_data.mat
new file mode 100644
index 0000000000000000000000000000000000000000..b2e96c50ff2c5372e5f4ebb77a6b660c99670abc
Binary files /dev/null and b/Autotuners/tmpdata/sim_data.mat differ
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..6255b6cb1dd7c99c705268a9259289f5b03dcd15
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+
+Matlab code and Simulink blocks for the Tau-tuner, NOMAD and Multi-NOMAD autotuner described further in the PhD Thesis "Automatic Controller Tuning using Relay-based Model Identification" by Josefin Berner 2017.
+
+All the used simulink blocks are in the AT-library folder. Apart from the three Autotuner versions the library also contains simulink blocks for a simple second order simulation example as well as a block for the two-input two-output model Wood-Berry distillation column.
+
+To run the experiments open the setup_script.m and choose the version you want to run. Remember to put in the wanted autotuner block and process model in the simulink file autotuner_siso_2012a.mdl if you are running a SISO experiment.
+
+If the NOMAD or multi-NOMAD is used it will be using cvx, so make sure it is setup in your matlab session by writing > setup_cvx followed by > cvx_setup before starting your experiment.
+
+All the needed parameters are set in the script setParams.m. Look it through to see if the values on times, nominal control signals etc. are appropriate for your experiments.
+
+The files are compatible with Matlab2012a. If you want to use another matlab version they may need to be converted somehow.
diff --git a/Scripts/SISO/Joe.m b/Scripts/SISO/Joe.m
new file mode 100644
index 0000000000000000000000000000000000000000..8c838e53529abbb82a460d591b0f96b59957221d
--- /dev/null
+++ b/Scripts/SISO/Joe.m
@@ -0,0 +1,71 @@
+function [J,J1,J2,ym,ym_p]=Joe(p,n,h,u,y)
+% Evaluates output error cost (J), its sensitivity Jacobian (Jp) and
+% (approximate) Hessian (Jpp) based on the model structure (m<=n):
+%
+%  b1*s^(m-1) + b2*s^(m-2) + ... + bm
+%  ---------------------------------- * e^(-L*s).
+%      s^n + a1*s^(n-1) + ... + an
+%
+% p - parameter row vector [b a L v x0]
+% n - system order
+% h - sampling period
+% u - process input (contribution from relay)
+% y - plant output (measurement sequence)
+
+% handle arguments
+m=numel(p)-2*n-2;
+a=p(m+1:m+n);
+b=[zeros(1,n-m) p(1:m)];
+L=p(m+n+1);
+v=p(m+n+2);
+%v = 0*v; % if not active
+x0=p(m+n+3:end).';
+%x0=0*x0; % if not active
+
+% augmented system for y  and sensitivities wrt b a L
+A=[-a;eye(n-1,n)];
+A=blkdiag(A,A);
+A(n+1,1:n)=b;
+B=[1;zeros(2*n-1,1)]; 
+C=[b;zeros(m,n-m) eye(m)];
+C=blkdiag(C,-eye(n));
+[q,r]=deconv(-[b 0],[1 a]);
+C=[C; r(2:end) zeros(1,n)];
+D=[zeros(m+n+1,1);q];
+H=c2d(ss(A,B,C,D),h,'zoh');
+
+% sampled model matrices
+E=H.a(1:n,1:n);
+F=H.b(1:n);
+
+% % add disturbance and delay to input
+%u=u+v;
+k=round(L/h);
+u=[zeros(k,1);u(1:end-k)];
+u = u+v; %Hmm v ska väl inte vara delayed? så u = u+v borde ligga här efter nollorna?
+
+% ym and sensitivites wrt b a L
+yH=lsim(H,u,[],[x0;zeros(n,1)]);
+ym=yH(:,1); 
+ym=ym-b*x0; % borde inte även b*simopt.xv tas bort här om det ska vara identiskt med simuleringen? 
+ym_b=yH(:,2:2+m-1);
+ym_b=ym_b-repmat(x0(end-m+1:end).',numel(ym),1); % Okej är för att grad b ju även har x0-termer
+ym_aL=yH(:,2+m:end);
+
+% % sensitivity wrt v
+G=ss(E,F,b,0,h);
+ym_v=lsim(G,0*u+1,[],x0*0);
+ym_v = 0*ym_v; % if not active
+
+% sensitivity wrt x0
+G0=ss(E.',F*0,eye(n),-b.',h);
+ym_x0=lsim(G0,0*u+1,[],b.');
+%ym_x0 = 0*ym_x0; % If not active
+
+% compute Jacobian and Hessian
+ym_p=[ym_b ym_aL ym_v ym_x0];
+%ym_p=[ym_b ym_aL ym_x0];
+e=ym-y;
+J=h/2*e'*e;
+J1=h*(e'*ym_p).';
+J2=h*ym_p'*ym_p;
diff --git a/Scripts/SISO/circplot.m b/Scripts/SISO/circplot.m
new file mode 100644
index 0000000000000000000000000000000000000000..e0a42cc12d87f4fab1ae715b4e54573a3dc154c0
--- /dev/null
+++ b/Scripts/SISO/circplot.m
@@ -0,0 +1,4 @@
+function circplot(c, r, color)
+% Plots circles with centres in c = [x, y] and radii r 
+w = linspace(0,2*pi,100);
+plot(c(1) +r*cos(w), c(2) +  r*sin(w),color)
\ No newline at end of file
diff --git a/Scripts/SISO/cvxpid.m b/Scripts/SISO/cvxpid.m
new file mode 100644
index 0000000000000000000000000000000000000000..547bb2556620f765c8cb0aab09ebb047cb10ecc4
--- /dev/null
+++ b/Scripts/SISO/cvxpid.m
@@ -0,0 +1,73 @@
+function p=cvxpid(P0,r,w,Ms,Mt,p)
+% [kp,ki,kd]=cvxpid(P0,r,w,Ms,Mt,F)
+% minimizes load step IE <=> maximizes ki for
+%
+% C(s)=kp+ki/s+kd
+%
+% p   - parameter vector p=[kp ki kd]
+% w   - frequency grid
+% P0  - frequency response of nominal plant over w
+% r   - uncertainty radii over w
+% Ms  - upper bound of sensitivity. Scalar or frequency-wise over w
+% Mt  - upper bound of complementary sensitivity. Defined as Ms
+%
+% All vectors are columns, unless otherwise stated.
+
+% setup
+cvx_clear;
+verbose=true;
+
+% constraint represented as circles with centra and radii:
+cs=-1;                % Ms center
+rs=1./Ms;             % Ms radius
+ct=-Mt.^2./(Mt.^2-1); % Mt center
+rt=Mt./(Mt.^2-1);     % Mt radius
+
+% frequency responses and removal of unwanted control law terms
+C1=[1+0*w 1./(1i*w) 1i*w];
+C=C1*p;
+
+% print on screen
+if verbose
+    formatSpec=...
+        '|%2u|   %2.2f   |   %1.1f   | %1.4f |  %2.0f   |\n';
+    fprintf('\n|it|   Ms |   kp    |   ki   |  kd   |\n')
+    fprintf('|--|----------|---------|--------|-------|\n')
+end
+
+% optimization
+prev_obj=-inf;
+for n=1:10
+    L_=P0.*C;
+    cvx_begin quiet
+    variable p(3)
+    maximize (p(2)) % maximize ki
+    subject to
+    C=C1*p;
+    L=P0.*C;
+    
+    if Ms<inf
+        real(conj((L_-cs)./abs(L_-cs)).*(L-cs))>=rs+r.*abs(C); % Ms
+    end
+    if Mt<inf
+        real(conj((L_-ct)./abs(L_-ct)).*(L-ct))>=rt+r.*abs(C); % Mt
+    end
+    cvx_end
+    
+    if ~strcmp(cvx_status,'Solved')
+        error(['PID design failed. Cvx returned status: ' cvx_status])
+    end
+    
+    % print iteration result
+    if verbose
+        Msn=max(abs(1./((1+L)-r.*abs(C))));
+        fprintf(formatSpec,n,Msn,p(1),p(2),p(3))
+    end
+    
+    % Stopping criterion
+    if abs(p(2)-prev_obj)<1e-3*prev_obj
+        break;
+    end
+    prev_obj=p(2);
+end
+p=p(:);
\ No newline at end of file
diff --git a/Scripts/SISO/getPhat.m b/Scripts/SISO/getPhat.m
new file mode 100644
index 0000000000000000000000000000000000000000..891b6e33e51e5067a8dda24722a744caffc23b89
--- /dev/null
+++ b/Scripts/SISO/getPhat.m
@@ -0,0 +1,192 @@
+% Yields models from asymmetric relay experiment.
+% All signals a sampled at a period h, passed as argument.
+function [models,idTime,simdata]=getPhat(params, simopt, simdata, result)
+%load('params.mat','params')
+h = params.h;
+
+%% experiment
+
+% main experiment
+% [u,y,t]=runSim(simopt,params);
+% % filtered input
+
+% simdata.u = u;
+% simdata.y = y;
+% simdata.t = t;
+first_index = find(simdata.t > params.expStartTime, 1);
+u = simdata.u(first_index:end)-result(2);
+t = simdata.t(first_index:end);
+y = simdata.y(first_index:end)-result(1);
+uf=lsim(simopt.F,u,t);
+%% identification
+tic
+
+% find switch instances
+sw_ind = find(diff(u));
+st=t(sw_ind); % switch times
+dt=diff(st(end-2:end)); % switch durations
+gamma = params.asym;
+rho_est=max(0,min(gamma,max(dt)/min(dt))); % to ensure the equation's working
+tau_est = (gamma-rho_est)/((gamma-1)*(0.35*rho_est+0.65));
+kp_est = sum(y(sw_ind(end-2):end))/sum(u(sw_ind(end-2):end));
+Lmax=min(dt);
+
+
+% FOTD: b/(s+a)*exp(-s*L)
+rpts = 40; % Number of random points for initialization used 30
+L0 = Lmax*rand(rpts,1);
+amean=tau_est./(L0*(1-tau_est));
+a0 = amean+0.1*amean.*randn(rpts,1);
+%bmean= kp_est*amean; %since kp seems a bit unreliable atm
+%b0=kp_est*a0;
+b0 = amean+0.1.*amean.*randn(rpts,1); 
+starts = [b0';a0';L0'];
+
+FOTD=getModel(0,0,0,0,0);
+
+J = FOTD.J;
+for idx = 1:rpts
+    m = getModel(b0(idx),a0(idx),L0(idx),0,0);
+    if m.J < FOTD.J
+        idx
+        starts(:,idx)
+        FOTD = m;
+    end
+end
+
+% SOTD: b1/(s^2+a1*s+a2)*exp(-s*L)
+Tar = 1/FOTD.a+FOTD.L;
+tau = FOTD.L/Tar;
+
+a=(exp(1)-1)/(1-tau)/Tar;
+L=max(Tar-2/a,0);
+L=min(L,Lmax);
+if FOTD.a>0
+    b=FOTD.b*a^2/FOTD.a;
+    x1=[0 FOTD.b/b*FOTD.x0]; % FIXME: initialize based on FOTD.x0?
+    x2 = [0 0];
+else
+    b=0;
+    x1 = [0 FOTD.x0];
+    x2 = [0 0];
+end
+a=[2*a a^2];
+v=FOTD.v;
+%sotdstart = [b a L]
+
+try
+    SOTD1=getModel(b,a,L,v,x1);
+    SOTD2=getModel(b,a,L,v,x2);
+    % added as a test
+    SOTD3=getModel(0,[0,0],0,v,x2);
+    % end of test
+    if SOTD1.J < SOTD2.J
+        SOTD = SOTD1;
+    else 
+        SOTD = SOTD2;
+    end
+% Testing!
+    if SOTD3.J < SOTD.J
+        zero_best = 1
+        SOTD = SOTD3;
+    end
+% End testing
+catch
+    SOTD.J=inf;
+    warning('no SOTD')
+    FOTD.a
+    FOTD.b
+    FOTD.P
+    pause
+end
+
+idTime=toc;
+
+% find best model (Akaike: log(cost)+ 2*p/N) or (BIC: log(cost)+log(N)*p/N)
+N = length(u);
+[~,type]=min([log(FOTD.J)+2*3/N log(SOTD.J)+2*4/N]); %Akaike
+%[~,type]=min([log(FOTD.J)+log(N)*3/N log(SOTD.J)+log(N)*4/N]); %BIC
+models.type=type(1);
+switch models.type
+    case 1
+        best=FOTD;
+    case 2
+        best=SOTD;
+end
+% organize output
+models.FOTD=FOTD;
+models.SOTD=SOTD;
+models.best=best;
+
+% plot
+draw=true;
+if draw
+    % time plot
+    figure(1)
+    stairs(t,uf,'color',.6*[1 1 1],'linewidth',2)
+    hold on
+    stairs(t,y,'color',[.6 1 .6],'linewidth',2)
+    stairs(t,best.ym,'b','linewidth',2)
+    stairs(t,FOTD.ym,'r','linewidth',1)
+    ylims=1.2*[min(uf) max(uf)];
+    xlim([0 t(end)])
+    ylim(ylims)
+    leg=legend('$u$: relay output','$y$: measurement',...
+        '$y_m$: best model output', '$y_m$: fotd output');
+    set(leg,'Location','northoutside','Interpreter','latex','FontSize',12)
+    hold off
+    drawnow
+end
+
+% nested function calling the optimization routine(s)
+    function model=getModel(b0,a0,L0,v0,x0)
+        n=numel(a0);
+        m=numel(b0);
+        p0=[b0 a0 L0 v0 x0]; % initial parameter row vector
+        lb=[-inf(1,m) zeros(1,n) 0 -inf(1,n+1)];  % lower bound on p
+        ub=[inf(1,n+m) Lmax inf(1,n+1)]; % upper bound on p
+        % First run, trust-region algorithm
+        opts=optimset('Algorithm','trust-region-reflective',...
+            'GradObj','on','Hessian','user-supplied','Display','off');
+        [p,J,~,~,~,Jp,Jpp]=fmincon(@(p)Joe(p,n,h,uf,y),p0,[],[],[],[],...
+            lb,ub,[],opts);
+        % model output
+        [~,~,~,ym]=Joe(p,n,h,uf,y);
+        model.ym=ym;
+        % Second run, sqp algorithm
+          opts=optimset('Algorithm','sqp',...
+            'GradObj','on','Display','off');
+        [p2,J2,~,~,~,Jp,Jpp]=fmincon(@(p)Joe(p,n,h,uf,y),p0,[],[],[],[],...
+            lb,ub,[],opts);
+        if J2 < J
+            % model output
+            p = p2;
+            [~,~,~,ym]=Joe(p,n,h,uf,y);
+            model.ym=ym;
+        end
+        % identified parameters
+        model.b=p(1:m);
+        model.a=p(m+1:m+n);
+        model.L=p(m+n+1);
+        model.v=p(m+n+2);
+        model.x0=p(m+n+3:end);
+        
+        % construct model corresponding to x0
+        A=[-model.a;eye(n-1,n)];
+        B=[1;zeros(n-1,1)];
+        C=[zeros(1,n-m) model.b];
+        D=0;
+        model.P0=ss(A,B,C,D);
+        
+        % transfer function model
+        model.P=tf(model.P0);
+        model.P.inputdelay=model.L;
+        
+        % optimization related
+        model.J=J;
+        model.Jp=Jp;
+        model.Jp;
+        model.Jpp=Jpp;
+        model.samples=numel(u); % Covariance matrix: 2*J/numel(u)*inv(Jpp)
+    end
+end
\ No newline at end of file
diff --git a/Scripts/TITO/Joe2_etfa.m b/Scripts/TITO/Joe2_etfa.m
new file mode 100644
index 0000000000000000000000000000000000000000..a99cbe075270870582154938f853e169d043760b
--- /dev/null
+++ b/Scripts/TITO/Joe2_etfa.m
@@ -0,0 +1,40 @@
+function [J,J1,J2,ym,ym1,ym2,ym_p]=Joe2_etfa(p,n1,n2,h,u1,u2,y,Lfix)
+% Evaluates output error cost (J), its sensitivity Jacobian (Jp) and
+% (approximate) Hessian (Jpp) based on the model structure (m<=n):
+%
+%  b11*s^(m-1) + b12*s^(m-2) + ... + b1m
+%  ---------------------------------- * e^(-L1*s)
+%      s^n + a11*s^(n-1) + ... + a1n
+%
+% +
+%
+%  b21*s^(m-1) + b22*s^(m-2) + ... + b2m
+%  ---------------------------------- * e^(-L2*s)
+%      s^n + a21*s^(n-1) + ... + a2n
+%
+% p  - parameter row vector [p1 p2] = [b1 a1 L1 x0_1 b2 a2 L2 x0_2]
+% n  - system order
+% h  - sampling period
+% u1 - input to process parametrized by p1
+% u2 - input to process parametrized by p2
+
+% parameter vectors of individual processes
+if 2*n1+2*n2+4 == numel(p)
+else
+    warning('Wrong dimensions in p-vector')
+end
+p1 = p(1:2*n1+2);
+p2 = p(2*n1+3:end);
+% p1=p(1:numel(p)/2);
+% p2=p(numel(p)/2+1:end);
+
+% compute ym and ym_p
+[~,~,~,ym1,ym1_p]=Joe_etfa(p1,n1,h,u1,0,Lfix); % Behöver inte y
+[~,~,~,ym2,ym2_p]=Joe_etfa(p2,n2,h,u2,0,Lfix);
+ym=ym1+ym2;
+
+ym_p=[ym1_p ym2_p];
+e=ym-y;
+J=h/2*e'*e;
+J1=h*(e'*ym_p).';
+J2=h*ym_p'*ym_p;
\ No newline at end of file
diff --git a/Scripts/TITO/Joe_etfa.m b/Scripts/TITO/Joe_etfa.m
new file mode 100644
index 0000000000000000000000000000000000000000..3af7ec8015563a752aa8d0390eb3c69b25619e17
--- /dev/null
+++ b/Scripts/TITO/Joe_etfa.m
@@ -0,0 +1,89 @@
+function [J,J1,J2,ym,ym_p]=Joe_etfa(p,n,h,u,y,Lfix)
+% Evaluates output error cost (J), its sensitivity Jacobian (Jp) and
+% (approximate) Hessian (Jpp) based on the model structure (m<=n):
+%
+%  b1*s^(m-1) + b2*s^(m-2) + ... + bm
+%  ---------------------------------- * e^(-L*s).
+%      s^n + a1*s^(n-1) + ... + an
+%
+% p - parameter row vector [b a L x0]
+% n - system order
+% h - sampling period
+% u - process input (contribution from relay)
+% y - plant output (measurement sequence)
+
+% handle arguments
+m=numel(p)-2*n-1;
+a=p(m+1:m+n);
+b=[zeros(1,n-m) p(1:m)];
+L=p(m+n+1);
+v=0; % Don't use it anymore!
+x0=p(m+n+2:end).';
+%x0=0*x0; % if not active
+
+% augmented system for y  and sensitivities wrt b a L
+A=[-a;eye(n-1,n)];
+A=blkdiag(A,A);
+A(n+1,1:n)=b;
+B=[1;zeros(2*n-1,1)]; 
+C=[b;zeros(m,n-m) eye(m)];
+C=blkdiag(C,-eye(n));
+[q,r]=deconv(-[b 0],[1 a]);
+C=[C; r(2:end) zeros(1,n)];
+D=[zeros(m+n+1,1);q];
+H=c2d(ss(A,B,C,D),h,'zoh');
+
+% sampled model matrices
+E=H.a(1:n,1:n);
+F=H.b(1:n);
+
+% % add disturbance and delay to input
+%u=u+v;
+k=round(L/h);
+if k > length(u)
+    k
+    length(u)
+    warning('something fishy')
+end
+try
+    u=[zeros(k,1);u(1:end-k)];
+catch
+    k
+    size(u)
+    %u
+end
+%u = u+v; %Hmm v ska väl inte vara delayed? så u = u+v borde ligga här efter nollorna?
+
+% ym and sensitivites wrt b a L
+yH=lsim(H,u,[],[x0;zeros(n,1)]);
+ym=yH(:,1); 
+ym=ym-b*x0; % borde inte även b*simopt.xv tas bort här om det ska vara identiskt med simuleringen? 
+ym_b=yH(:,2:2+m-1);
+ym_b=ym_b-repmat(x0(end-m+1:end).',numel(ym),1); % Okej är för att grad b ju även har x0-termer
+%ym_aL=yH(:,2+m:end);
+if Lfix == 1
+    ym_aL=[yH(:,2+m:end-1),zeros(size(ym))];
+else
+    ym_aL=yH(:,2+m:end);
+end
+
+
+% % sensitivity wrt v
+G=ss(E,F,b,0,h);
+ym_v=lsim(G,0*u+1,[],x0*0);
+ym_v = 0*ym_v; % if not active
+
+% sensitivity wrt x0
+G0=ss(E.',F*0,eye(n),-b.',h);
+ym_x0=lsim(G0,0*u+1,[],b.');
+%ym_x0 = 0*ym_x0; % If not active
+
+% compute Jacobian and Hessian
+ym_p=[ym_b ym_aL ym_x0];
+
+
+
+e=ym-y;
+J=h/2*e'*e;
+J1=h*(e'*ym_p).';
+J2=h*ym_p'*ym_p;
diff --git a/Scripts/TITO/PIDdesign.m b/Scripts/TITO/PIDdesign.m
new file mode 100644
index 0000000000000000000000000000000000000000..e62710601c786c0e15b894b99b485b8520dbd1e3
--- /dev/null
+++ b/Scripts/TITO/PIDdesign.m
@@ -0,0 +1,59 @@
+function [Kp, Ki, Kd, tau] = PIDdesign(P)
+
+%% Controller Design
+
+% Design of MIMO-PID controller for the minimum-phase quadtank.
+
+% Check if CVX is installed
+if ~exist('cvx_version')
+    error('Error: CVX is not installed.')
+end
+
+% Check if Control System toolbox is installed. 
+if ~license('test','control_toolbox')
+    warning('Warning: Control System Toolbox is not installed.')
+end
+
+N = 300;                        % Nbr of frequency points
+omega = logspace(-3,3,N);       % Frequency sampling points
+
+% tau = 0.1; %0.3      % Derivative filter time-constant
+kk = 5; % Factor times bandwidth for filter time constant breakpoint
+
+for ii = 1:2
+    for jj = 1:2
+    [~,~,~,Wpm(ii,jj)] = margin(P(ii,jj)); % Finding cross-over freqs
+    end
+end
+tau = 1/(kk*max(max(Wpm))); % Filter time constant
+epsilon = 1e-2; % Initial controller parameter
+
+s = tf('s');
+F = 1/(1+s*tau+(s*tau)^2/2);
+
+%%%%%%%%%%%%%%% Temporary plot %%%%%%%%%%%%%%%%
+%figure(15);set(gcf,'position',[1250 650 550 440])
+%opts = bodeoptions('cstprefs');
+%opts.YLim = {[0.01,10];[-360,15];[0.01,10];[-360,15]};
+%bodeplot(P,'k',F,'r',opts);hold on
+P = P*F; % Filtered version of the plant
+%bodeplot(P,'b-.',opts); hold off
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Process definition:
+[Pfreq,~] = freqresp(P,omega);  % Restructure to cell format
+for ind = 1:length(omega)
+    P_cell{ind}=(Pfreq(:,:,ind));
+end
+P0 = dcgain(P)
+
+% Robustness constraints
+Smax = 1.4;
+Tmax = 1.4;
+Qmax = 30; % Not used anymore
+
+
+% Run optimization
+max_iter = 25;
+
+[Kp, Ki, Kd] = mimopiddesign(P_cell, P0, omega, Smax, Tmax, Qmax, epsilon, tau, max_iter);
+end
\ No newline at end of file
diff --git a/Scripts/TITO/WoodBerry.mat b/Scripts/TITO/WoodBerry.mat
new file mode 100644
index 0000000000000000000000000000000000000000..415ad6f560074c0924a7414baecdad7cd1165530
Binary files /dev/null and b/Scripts/TITO/WoodBerry.mat differ
diff --git a/Scripts/TITO/design_controllers.m b/Scripts/TITO/design_controllers.m
new file mode 100644
index 0000000000000000000000000000000000000000..6e3ab2453569ed67f69a71cb1885ecba320c5bb5
--- /dev/null
+++ b/Scripts/TITO/design_controllers.m
@@ -0,0 +1,15 @@
+clear all;
+load tmpdata/id_models.mat
+%load Gtrue.mat
+
+s = tf('s');
+% % [C.Kp, C.Ki, C.Kd, C.tau] = PIDdesign(Gtrue);
+%F = 1/(1+s*C.tau+(s*C.tau)^2/2);
+%C.tf =F*(C.Kp + 1/s*C.Ki+ s*C.Kd);
+
+[C_hat.Kp, C_hat.Ki, C_hat.Kd, C_hat.tau] = PIDdesign(Ghat);
+F_hat = 1/(1+s*C_hat.tau+(s*C_hat.tau)^2/2);
+C_hat.tf = F_hat*(C_hat.Kp + 1/s*C_hat.Ki+ s*C_hat.Kd);
+
+%save('tmpdata/controllers.mat','C','C_hat')
+save('tmpdata/controllers.mat','C_hat')
\ No newline at end of file
diff --git a/Scripts/TITO/getModels.m b/Scripts/TITO/getModels.m
new file mode 100644
index 0000000000000000000000000000000000000000..9e1e726ecd3eb2e11f96da0a98dd7e39cb8a2f22
--- /dev/null
+++ b/Scripts/TITO/getModels.m
@@ -0,0 +1,10 @@
+clear all
+close all
+clc
+addpath ../identification
+addpath ../experiment
+
+%% experiment and identification
+%models = getPhat('tune_model.mdl');
+%models = getPhat('tune_quadtank.mdl');
+models = getPhat('tune_ystep.mdl');
\ No newline at end of file
diff --git a/Scripts/TITO/identify_etfa.m b/Scripts/TITO/identify_etfa.m
new file mode 100644
index 0000000000000000000000000000000000000000..fba95342cd06c1b1dff49487052b620ae29b53b9
--- /dev/null
+++ b/Scripts/TITO/identify_etfa.m
@@ -0,0 +1,183 @@
+%% identification
+
+    function finalModel = identify_etfa (t,u1,u2,y,Lmax)
+tic                        
+        % FOTD: b/(s+a)*exp(-s*L)
+        gpoints = 5; % Had 50
+        t_sample=t(end)-t(end-1);
+        Lvec = rand(2,gpoints)*Lmax;
+        Lfix = 0; % Brukade vara 1 men tror inte jag vill ha dem fixa längre?
+        
+        %%%%%% Finding decent FOTD models from random points %%%%%%%
+        best1 = getModel(0,0,0,u1,y,Lfix);
+        best2 = getModel(0,0,0,u2,y,Lfix);
+        for idx = 1:gpoints
+            FOTD1 = getModel(0,0,Lvec(1,idx),u1,y, 1); % trying Lfix on these
+            FOTD2 = getModel(0,0,Lvec(2,idx),u2,y, 1); 
+            if FOTD1.J < best1.J
+                best1 = FOTD1;
+            end
+            if FOTD2.J < best2.J
+                best2 = FOTD2;
+            end
+        end
+        FOTD.best1 = best1;
+        FOTD.best2 = best2;
+        
+        % Looking to see if SOTD models are better
+        [b1,a1,L1,x01] = SOTD_start(best1.p(1),best1.p(2),best1.p(3),best1.p(4),Lmax);
+        SOTD1 = getModel(b1,a1,L1,u1,y,Lfix);
+        if log(SOTD1.J) + 2*4/length(u1) < log(best1.J)+2*3/length(u1) % Akaike IC
+            best1 = SOTD1
+        end
+        [b1,a1,L1,x01] = SOTD_start(best2.p(1),best2.p(2),best2.p(3),best2.p(4),Lmax);
+        SOTD2 = getModel(b1,a1,L1,u2,y,Lfix);
+        if log(SOTD2.J)+2*4/length(u2) < log(best2.J)+2*3/length(u2) % Akaike IC
+            best2 = SOTD2
+        end
+        
+        % And the alternative FOTD models from the leftovers.
+        best1_alt = getModel(0,0,0,u1,y-best2.ym,Lfix);
+        best2_alt = getModel(0,0,0,u2,y-best1.ym,Lfix);
+        for idx = 1:gpoints
+            FOTD1_alt = getModel(0,0,Lvec(1,idx),u1,y-best2.ym,1); % Lfix on these
+            FOTD2_alt = getModel(0,0,Lvec(2,idx),u2,y-best1.ym,1);
+            if FOTD1_alt.J < best1_alt.J
+                best1_alt = FOTD1_alt;
+            end
+            if FOTD2_alt.J < best2_alt.J
+                best2_alt = FOTD2_alt;
+            end
+        end
+        FOTD.alt_best1 = best1_alt;
+        FOTD.alt_best2 = best2_alt;
+        % SOTD for alternative
+        [b1,a1,L1,x01] = SOTD_start(best1_alt.p(1),best1_alt.p(2),best1_alt.p(3),best1_alt.p(4),Lmax);
+        SOTD1_alt = getModel(b1,a1,L1,u1,y-best2.ym,Lfix);
+        if log(SOTD1_alt.J)+2*4/length(u1) < log(best1_alt.J)+2*3/length(u1) % Akaike IC
+            best1_alt = SOTD1_alt
+        end
+        [b1,a1,L1,x01] = SOTD_start(best2_alt.p(1),best2_alt.p(2),best2_alt.p(3),best2_alt.p(4),Lmax);
+        SOTD2_alt = getModel(b1,a1,L1,u2,y-best1.ym,Lfix);
+        if log(SOTD2_alt.J)+2*4/length(u1) < log(best2_alt.J)+2*3/length(u2) % Akaike IC
+            best2_alt = SOTD2_alt
+        end
+            
+        %%%%%%%%%% Start combining the models %%%%%%%%%%%%%%
+        % First try with only using the best and no random points.
+        % Use the same model orders as the best models have
+            m1 = best1;
+            m2 = best2_alt;
+            m3 = best1_alt; 
+            m4 = best2;
+            m5 = FOTD.best1;
+            m6 = FOTD.best2;
+            m7 = FOTD.alt_best1;
+            m8 = FOTD.alt_best2;
+            %%%%%%%%%%%% Från gamla sättet %%%%%%%%%%%%%%
+            model_1 = getModel2(m1.p(1), m1.p(2:1+m1.n), m1.p(m1.n+2),0,0,0,u1,u2,y,Lfix); %best + FOTD
+            model_2 = getModel2(0,0,0,m4.p(1),m4.p(2:1+m4.n),m4.p(m4.n+2),u1,u2,y,Lfix); %FOTD + best
+            model_3 = getModel2(m1.p(1)/2, m1.p(2:1+m1.n), m1.p(m1.n+2),m4.p(1)/2,m4.p(2:1+m4.n),m4.p(m4.n+2),u1,u2,y,Lfix);
+            model_4 = getModel2(m1.p(1), m1.p(2:1+m1.n), m1.p(m1.n+2),m2.p(1),m2.p(2:m2.n+1),m2.p(m2.n+2),u1,u2,y,Lfix);
+            model_5 = getModel2(m3.p(1), m3.p(2:m3.n+1), m3.p(m3.n+2),m4.p(1),m4.p(2:m4.n+1),m4.p(m4.n+2),u1,u2,y,Lfix);
+            % FOTD only versions
+            model_6 = getModel2(m5.p(1), m5.p(2:1+m5.n), m5.p(m5.n+2),0,0,0,u1,u2,y,Lfix);
+            model_7 = getModel2(0,0,0,m6.p(1),m6.p(2:1+m6.n),m6.p(m6.n+2),u1,u2,y,Lfix);
+            model_8 = getModel2(m5.p(1)/2, m5.p(2:1+m5.n), m5.p(m5.n+2),m6.p(1)/2,m6.p(2:1+m6.n),m6.p(m6.n+2),u1,u2,y,Lfix);
+            model_9 = getModel2(m5.p(1), m5.p(2:1+m5.n), m5.p(m5.n+2),m8.p(1),m8.p(2:m8.n+1),m8.p(m8.n+2),u1,u2,y,Lfix);
+            model_10 = getModel2(m7.p(1), m7.p(2:m7.n+1), m7.p(m7.n+2),m6.p(1),m6.p(2:m6.n+1),m6.p(m6.n+2),u1,u2,y,Lfix);
+            % Get the one with smallest AIC cost. 
+            models = [model_1,model_2,model_3,model_4, model_5, model_6, model_7, model_8, model_9, model_10];
+            for ind = 1:length(models)
+                mm = models(ind);
+                AIC(ind) = log(mm.J)+2*(mm.n1+2+mm.n2+2)/length(mm.ym);
+            end
+            [~,ind] = min(AIC);
+            best_model_index = ind
+            finalModel.best = models(ind)
+            %%%%%%%%%%%%%
+
+ toc        
+
+   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5    
+        function [b1,a1,L1,x01] = SOTD_start(b,a,L,x0,Lmax)
+            Tar = 1/a+L;
+            tau = L/Tar;
+            a1=(exp(1)-1)/(1-tau)/Tar;
+            L1=max(Tar-2/a1,0);
+            L1=min(L1,Lmax);
+            
+            if a>0
+                b1=b*a1^2/a;
+                x01=[0 b/b1*x0]; % FIXME: initialize based on FOTD.x0?
+            else
+                b1=0;
+                x01 = [0 x0];
+            end
+            a1=[2*a1 a1^2];
+        end
+   
+   
+        
+        function model = getModel(b,a,L,u,y, Lfix)
+            n=numel(a);
+            m=numel(b);
+            p0=[b a L zeros(1,n)]; % initial parameter row vector
+            lb = [-inf(1,m) -inf(1,n) 0 -inf(1,n)]; % Removed lower bounds on a.
+            ub=[inf(1,n+m) Lmax inf(1,n)]; % upper bound on p
+            opts=optimset('Algorithm','trust-region-reflective',...
+                'GradObj','on','Hessian','user-supplied','Display','off');
+            [p,J,~,~,~,Jp,Jpp]=fmincon(@(p)Joe_etfa(p,n,t_sample,u,y,Lfix),p0,[],[],[],[],...
+                lb,ub,[],opts); 
+            
+            % model output
+            [J,~,~,ym,~]=Joe_etfa(p,n,t_sample,u,y, Lfix); %Bytt ut h mot t_sample
+            model.J = J;
+            model.ym=ym;
+            model.p = p;
+            model.n = n;
+        end
+        
+        % no longer assumes order of process models is the same
+        function model = getModel2(b1,a1,L1,b2,a2,L2,u1,u2,y,Lfix)
+            n1=numel(a1);
+            n2=numel(a2);
+            m_1=numel(b1);
+            m_2=numel(b2);
+            p1 = [b1 a1 L1 zeros(1,n1)];
+            p2 = [b2 a2 L2 zeros(1,n2)];
+            p0=[p1 p2]; % initial parameter row vector
+            lb=[-inf(1,m_1) zeros(1,n1) 0 -inf(1,n1) -inf(1,m_2) zeros(1,n2) 0 -inf(1,n2)];
+            ub=[inf(1,n1+m_1) Lmax inf(1,n1) inf(1,n2+m_2) Lmax inf(1,n2)]; % upper bound on p
+            opts=optimset('Algorithm','trust-region-reflective',...
+                'GradObj','on','Hessian','user-supplied','Display','off');
+            [p,J,~,~,~,Jp,Jpp]=fmincon(@(p)Joe2_etfa(p,n1,n2,t_sample,u1,u2,y,Lfix),p0,[],[],[],[],...
+                lb,ub,[],opts);
+            % Second run, sqp algorithm
+            opts=optimset('Algorithm','sqp',...
+                'GradObj','on','Display','off');
+            [p_2,J2,~,~,~,Jp,Jpp]=fmincon(@(p)Joe2_etfa(p,n1,n2,t_sample,u1,u2,y,Lfix),p0,[],[],[],[],...
+                lb,ub,[],opts);
+            if J2 < J
+                p = p_2;
+            end
+            
+            % model output
+            [J,~,~,ym,~,~,~]=Joe2_etfa(p,n1,n2,t_sample,u1,u2,y,Lfix);
+            model.ym=ym;
+            model.p = p;
+            model.p1 = p(1:2*n1+m_1+1);
+            model.p2 = p(2*n1+m_1+2:end);
+            model.J = J;
+            model.n1 = n1;
+            model.n2 = n2;
+            model.b1 = model.p1(1);
+            model.b2 = model.p2(1);
+            model.a1 = model.p1(2:n1+1);
+            model.a2 = model.p2(2:n2+1);
+            model.L1 = model.p1(n1+2);
+            model.L2 = model.p2(n2+2);    
+        end
+         
+    
+    end
\ No newline at end of file
diff --git a/Scripts/TITO/identify_models.m b/Scripts/TITO/identify_models.m
new file mode 100644
index 0000000000000000000000000000000000000000..a69af473486dcf337e088981c7a523199a1de804
--- /dev/null
+++ b/Scripts/TITO/identify_models.m
@@ -0,0 +1,21 @@
+%clear all
+%load tmpdata/sim_data.mat
+
+% Testar med tp/2 som Lmax...
+Lmax = max(result1(19),result2(19))/2;
+finalModel1 = identify_etfa(simdata.t_exp, simdata.u1_exp,simdata.u2_exp, simdata.y1_exp,Lmax);
+new_model = 'yes'
+finalModel2 = identify_etfa(simdata.t_exp,simdata.u1_exp, simdata.u2_exp,simdata.y2_exp,Lmax);
+
+m1 = finalModel1.best;
+m2 = finalModel2.best;
+
+G11hat = tf(m1.b1,[1,m1.a1]); G11hat.InputDelay = m1.L1;
+G12hat = tf(m1.b2,[1,m1.a2]); G12hat.InputDelay = m1.L2;
+G21hat = tf(m2.b1,[1,m2.a1]); G21hat.InputDelay = m2.L1;
+G22hat = tf(m2.b2,[1,m2.a2]); G22hat.InputDelay = m2.L2;
+Ghat = [G11hat G12hat; G21hat G22hat]
+
+
+save('tmpdata/id_models.mat','Ghat','finalModel1','finalModel2')
+save('tmpdata/sim_data.mat','simdata')
diff --git a/Scripts/TITO/mimopiddesign.m b/Scripts/TITO/mimopiddesign.m
new file mode 100644
index 0000000000000000000000000000000000000000..e685cf0da04829243a14ab0d8a027459bb724a31
--- /dev/null
+++ b/Scripts/TITO/mimopiddesign.m
@@ -0,0 +1,96 @@
+function [Kp, Ki, Kd] = mimopiddesign(P, P0, omega, Smax, Tmax, Qmax, epsilon, tau, max_iter)
+% MIMO PID Tuning via Iterated LMI Restriction
+%
+% [Kp,Ki,Kd] = mimopiddesign(P,P0,omega,Smax,Tmax,Qmax,epsilon,tau,max_iter,verbose)
+%  
+% Computes a multiple-input multple-output (MIMO) PID controller on the form
+%
+%       PID(s) = Kp + 1/s*Ki + s/(1+tau*s)*Kd
+%
+% for the plant described its frequency response P and DC-gain P0. The
+% controller will guaranetee that the maximum singular values of the
+% closed-loop transfer functions S, T, Q and R are less than or equal to
+% the specified maximal values given by Smax, Tmax, Qmax and Rmax. 
+%
+% P - cell array with frequency response.
+% P0 - dc gain of the plant.
+% Smax - constraint on the maximum singular value of S = inv(I + P*C).
+% Tmax - constraint on the maximum singular value of T = P*C*S.
+% Qmax - constraint on the maximum singular value of Q = C*S.
+% epsilon - initial controller integral-gain constant
+% tau - derivative filter time constant.
+% max_iter - maximum number of optimization iterations.
+
+cvx_quiet(true);
+
+N = length(omega);              % Nbr of frequency points
+[p, m] = size(P0);              % Nbr of system inputs and outputs
+
+I = eye(p);
+
+% Controller:
+s = 1i*omega;
+Cprop = ones(1,N);       % Proportional part
+Cint = 1./s;             % Integral part
+%Cder = s./(1 + tau*s);   % Derivative part
+Cder = s; % Derivative part without filter
+
+% Initialization of controller variables
+Kp = zeros(m, p);
+Ki = epsilon*pinv(P0);
+Kd = zeros(m, p);
+
+% Initialization of C and Z
+for k = 1:N
+    C{k}= Cprop(k)*Kp + Cint(k)*Ki + Cder(k)*Kd;  % PID-controller
+    Z{k} = I + P{k}*C{k};
+end
+
+% Printing:
+formatSpec = '|%2u|  %2.3f  |  %2.3f  |  %2.3f  |  %2.2e  |\n';
+fprintf('\n|it|  ||S||  |  ||T||  |  ||Q||  |    obj.    |\n')
+fprintf('|--|---------|---------|---------|------------|\n')
+
+% Optimization routine
+prev_obj = 0;           % Initialize prev_obj
+for iter = 1:max_iter
+    Ztilde = Z;
+    Ztilde0 = P0*Ki;
+    %% Create and solve the convex problem:
+    cvx_begin SDP                
+        variables s Kp(m,p) Ki(m,p) Kd(m,p);
+        maximize( s )
+        subject to
+            % Constraint associated with objective function:
+            Z0 = P0*Ki;                        
+            Z0'*Ztilde0 + Ztilde0'*Z0 - Ztilde0'*Ztilde0 >= s*I;
+            % Robustness contraints:
+            for k = 1:N
+                C{k} = Cprop(k)*Kp + Cint(k)*Ki + Cder(k)*Kd;
+                Z{k} = I + P{k}*C{k};
+                % Constraints on S:                
+                Z{k}'*Ztilde{k} + Ztilde{k}'*Z{k} - Ztilde{k}'*Ztilde{k} >= 1/Smax^2*I;
+                % Constraint on T:
+                [Z{k}'*Ztilde{k} + Ztilde{k}'*Z{k} - Ztilde{k}'*Ztilde{k} 1/Tmax*(P{k}*C{k})'
+                    1/Tmax*(P{k}*C{k}) I] >= 0;
+                % Constraint on Q:
+%                [Z{k}'*Ztilde{k} + Ztilde{k}'*Z{k} - Ztilde{k}'*Ztilde{k} 1/Qmax*C{k}'
+%                   1/Qmax*C{k} I] >= 0;
+            end
+    cvx_end
+    
+    for k = 1:N % Calculate the singular values
+        sing_S(k) = norm(I/Z{k});
+        sing_T(k) = norm((P{k}*C{k})/Z{k});
+        sing_Q(k) = norm(C{k}/Z{k});
+    end
+    % Print result:
+    fprintf(formatSpec, iter, max(sing_S), max(sing_T), max(sing_Q), sqrt(s)) % Print result
+    % Stopping criterion            
+    if (sqrt(s)-prev_obj) < 1e-3*prev_obj
+        break;
+    end
+    prev_obj = sqrt(s);
+end
+
+end
\ No newline at end of file
diff --git a/Scripts/TITO/plot_controller_performance.m b/Scripts/TITO/plot_controller_performance.m
new file mode 100644
index 0000000000000000000000000000000000000000..824d2d883457f0a68312f83c3ebbfff54994b960
--- /dev/null
+++ b/Scripts/TITO/plot_controller_performance.m
@@ -0,0 +1,54 @@
+clear all
+%load figs/qt_sim_results/all_run_quadtank
+load Gtrue
+P = Gtrue;
+load tmpdata/controllers.mat
+C = C.tf;
+C_hat = C_hat.tf;
+
+% set point changes
+figure(10); set(gcf,'position',[50 650 550 440])
+step(inv(eye(2)+P*C)*P*C,'k')
+hold on
+step(inv(eye(2)+P*C_hat)*P*C_hat,'r')
+hold off
+title('T')
+
+% % set point changes
+% figure(16); set(gcf,'position',[50 650 550 440])
+% step(inv(eye(2)+C*P)*C*P,'k')
+% hold on
+% step(inv(eye(2)+C_hat*P)*C_hat*P,'r')
+% hold off
+% title('T*')
+
+% load disturbances
+figure(11); set(gcf,'position',[650 650 550 440])
+step(inv(eye(2)+P*C)*P,'k')
+hold on
+step(inv(eye(2)+P*C_hat)*P,'r')
+hold off
+title('SP')
+
+% noise response
+figure(12); set(gcf,'position',[50 80 550 440])
+step(inv(eye(2)+P*C),'k')
+hold on
+step(inv(eye(2)+P*C_hat),'r')
+hold off
+title('S')
+
+% 
+figure(13); set(gcf,'position',[650 80 550 440])
+step(inv(eye(2)+P*C)*C,'k')
+hold on
+step(inv(eye(2)+P*C_hat)*C_hat,'r')
+hold off
+title('SC')
+
+
+figure(14); set(gcf,'position',[1250 80 550 440])
+bode(C,'k')
+hold on
+bode(C_hat,'r')
+hold off
\ No newline at end of file
diff --git a/Scripts/TITO/plot_models.m b/Scripts/TITO/plot_models.m
new file mode 100644
index 0000000000000000000000000000000000000000..9774ab3ab2c4c9b9273dabf5ae5d7b4af8fdbded
--- /dev/null
+++ b/Scripts/TITO/plot_models.m
@@ -0,0 +1,45 @@
+clear all;
+load tmpdata/sim_data.mat
+load tmpdata/id_models.mat
+%load Gtrue
+if exist('Gtrue','var') == 0
+    Gtrue = tf(0);
+end
+
+t = simdata.t_exp;
+u1 = simdata.u1_exp;
+u2 = simdata.u2_exp;
+y1 = simdata.y1_exp;
+y2 = simdata.y2_exp;
+
+%Removing points and plotting
+[tr11,ur1] = removePoints(t,u1);
+[tr21,yr1] = removePoints(t,y1);
+[tr31,ym1] = removePoints(t,finalModel1.best.ym);
+
+[tr12,ur2] = removePoints(t,u2);
+[tr22,yr2] = removePoints(t,y2);
+[tr32,ym2] = removePoints(t,finalModel2.best.ym);
+
+figure(1);
+subplot(211)
+plot(tr11,ur1,'b')
+hold on
+plot(tr21,yr1,'r')
+plot(tr31,ym1,'k','LineWidth',1) % normalized to y0
+hold off
+legend('u_1','y_1','y_{m1}')
+
+subplot(212)
+plot(tr12,ur2,'b')
+hold on
+plot(tr22,yr2,'r')
+plot(tr32,ym2,'k','LineWidth',1) %normalized to y0
+hold off
+legend('u_2','y_2','y_{m2}')
+
+figure(2)
+bodeplot(Ghat,'r',Gtrue,'k'); set(gcf,'position',[1250 80 550 440])
+opts = bodeoptions('cstprefs');
+opts.YLim = {[0.01,25];[-270,15];[0.01,25];[-270,15]};
+bodeplot(Ghat,'r',Gtrue,'k',opts)
diff --git a/Scripts/TITO/removePoints.m b/Scripts/TITO/removePoints.m
new file mode 100644
index 0000000000000000000000000000000000000000..70f531a401b30abc61c2f5c483d02200e251bbc7
--- /dev/null
+++ b/Scripts/TITO/removePoints.m
@@ -0,0 +1,46 @@
+function [xvec,yvec] = removePoints(xvec,yvec,str)
+% Removing all equal y-points except for the endpoints. Optional 3rd argument to display
+% the results by 'check plot', 'check nbr' or 'check all'.
+showPlot = 0;
+showNbr = 0;
+if nargin > 2
+    if strcmp(str,'check plot')
+        showPlot = 1;
+        hej = 27
+    elseif strcmp(str,'check all')
+        showPlot = 1;
+        showNbr = 1;
+    elseif strcmp(str,'check nbr')
+        showNbr = 1;
+    else
+        warning(strcat('argument "',str,'" not known'))
+    end
+end
+if length(xvec) ~= length(yvec)
+    error('Vectors must have the same length!')
+end
+x = xvec; y = yvec;
+XpointsToRemove = [];
+
+y1 = yvec(1:end-2);
+y2 = yvec(2:end-1);
+y3 = yvec(3:end);
+YpointsToRemove1 = find(y1-y2==0)+1;
+YpointsToRemove2 = find(y2-y3==0)+1;
+YpointsToRemove = intersect(YpointsToRemove1,YpointsToRemove2);
+
+pointsToRemove = union(XpointsToRemove,YpointsToRemove);
+xvec(pointsToRemove) = [];
+yvec(pointsToRemove) = [];
+if showNbr == 1 
+    nbrOfRemoved = length(pointsToRemove)
+end
+if showPlot == 1
+  figure()
+  plot(x,y)
+  hold on
+  plot(xvec,yvec,'r')
+  hold off
+  legend('original','reduced')
+end
+end
\ No newline at end of file
diff --git a/Scripts/TITO/simulate_experiment.m b/Scripts/TITO/simulate_experiment.m
new file mode 100644
index 0000000000000000000000000000000000000000..342d5e44238eb0dcfca9872b1b41e1dc2fa5c28c
--- /dev/null
+++ b/Scripts/TITO/simulate_experiment.m
@@ -0,0 +1,35 @@
+%clear all
+%[simdata.u1,simdata.y1,simdata.t, simdata.u2, simdata.y2, result]=runSim(simopt,params);
+
+% make current workspace available to the simulator
+options = simset('SrcWorkspace','current');
+warning('off','Simulink:blocks:TDelayDirectThroughAutoSet')
+sim('autotuner_tito_2012a',[],options)
+warning('on','Simulink:blocks:TDelayDirectThroughAutoSet')
+
+% extract signals
+simdata.t=simout.time;
+data=simout.signals.values;
+simdata.u1=data(:,1);
+simdata.y1=data(:,2);
+simdata.u2=data(:,3);
+simdata.y2=data(:,4);
+result = result.signals.values;
+
+
+%load sim_params.mat
+
+result1 = result(1:23);
+result2 = result(24:end);
+
+% To not do the estimation on the noise measuring interval
+t_exp_start = result2(23); 
+exp_start = find(simdata.t > t_exp_start); % Temporary, should be larger than uref or something
+exp_stop = find(simdata.t > max(result1(17),result2(17)));
+simdata.t_exp = simdata.t(exp_start:exp_stop);
+simdata.u1_exp = simdata.u1(exp_start:exp_stop)-result1(16); % removes setpoint offsets
+simdata.u2_exp = simdata.u2(exp_start:exp_stop)-result2(16);
+simdata.y1_exp = simdata.y1(exp_start:exp_stop)-result1(15);
+simdata.y2_exp = simdata.y2(exp_start:exp_stop)-result2(15);
+
+save('tmpdata/sim_data.mat','simdata','result1','result2','params')
diff --git a/Scripts/TITO/slprj/_jitprj/jitEngineAccessInfo.mat b/Scripts/TITO/slprj/_jitprj/jitEngineAccessInfo.mat
new file mode 100644
index 0000000000000000000000000000000000000000..6c8f6d7c3e5add31ea4ff9dae8883984a44403c0
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/jitEngineAccessInfo.mat differ
diff --git a/Scripts/TITO/slprj/_jitprj/s4TPKMZGJBJjvMSDAQZgq3.l b/Scripts/TITO/slprj/_jitprj/s4TPKMZGJBJjvMSDAQZgq3.l
new file mode 100644
index 0000000000000000000000000000000000000000..939030f725e991159ab2b87fae4fdfd4e2e99d6d
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/s4TPKMZGJBJjvMSDAQZgq3.l differ
diff --git a/Scripts/TITO/slprj/_jitprj/s4TPKMZGJBJjvMSDAQZgq3.mat b/Scripts/TITO/slprj/_jitprj/s4TPKMZGJBJjvMSDAQZgq3.mat
new file mode 100644
index 0000000000000000000000000000000000000000..e153de4ff03dc1e2bb30bf0227a1743edfd915b6
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/s4TPKMZGJBJjvMSDAQZgq3.mat differ
diff --git a/Scripts/TITO/slprj/_jitprj/sV7JtXXAAkmojCrcBZyKmYF.l b/Scripts/TITO/slprj/_jitprj/sV7JtXXAAkmojCrcBZyKmYF.l
new file mode 100644
index 0000000000000000000000000000000000000000..e6c587827b7ecab68a305a34838b5e35eb2d01f6
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/sV7JtXXAAkmojCrcBZyKmYF.l differ
diff --git a/Scripts/TITO/slprj/_jitprj/sV7JtXXAAkmojCrcBZyKmYF.mat b/Scripts/TITO/slprj/_jitprj/sV7JtXXAAkmojCrcBZyKmYF.mat
new file mode 100644
index 0000000000000000000000000000000000000000..0bb38a04dae1b6abbeb166ff0025ce7c98ceee69
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/sV7JtXXAAkmojCrcBZyKmYF.mat differ
diff --git a/Scripts/TITO/slprj/_jitprj/sa2KJ1Bzvvs58Tl03TCNUCD.l b/Scripts/TITO/slprj/_jitprj/sa2KJ1Bzvvs58Tl03TCNUCD.l
new file mode 100644
index 0000000000000000000000000000000000000000..bff749d5e58c598ff6ec94b45378848ac6d6fb27
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/sa2KJ1Bzvvs58Tl03TCNUCD.l differ
diff --git a/Scripts/TITO/slprj/_jitprj/sa2KJ1Bzvvs58Tl03TCNUCD.mat b/Scripts/TITO/slprj/_jitprj/sa2KJ1Bzvvs58Tl03TCNUCD.mat
new file mode 100644
index 0000000000000000000000000000000000000000..96b9869eeece486319de894ea58580e269604070
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/sa2KJ1Bzvvs58Tl03TCNUCD.mat differ
diff --git a/Scripts/TITO/slprj/_jitprj/sevXm465YiM9JGSlvS9cCzG.l b/Scripts/TITO/slprj/_jitprj/sevXm465YiM9JGSlvS9cCzG.l
new file mode 100644
index 0000000000000000000000000000000000000000..968077463770481eb58a2bb89341416cdc1ee1bb
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/sevXm465YiM9JGSlvS9cCzG.l differ
diff --git a/Scripts/TITO/slprj/_jitprj/sevXm465YiM9JGSlvS9cCzG.mat b/Scripts/TITO/slprj/_jitprj/sevXm465YiM9JGSlvS9cCzG.mat
new file mode 100644
index 0000000000000000000000000000000000000000..7b0b8940adcc5a09ca233994e44f08e631c147ef
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/sevXm465YiM9JGSlvS9cCzG.mat differ
diff --git a/Scripts/TITO/slprj/_jitprj/soEusDdNagrgREA5x2e3LWH.l b/Scripts/TITO/slprj/_jitprj/soEusDdNagrgREA5x2e3LWH.l
new file mode 100644
index 0000000000000000000000000000000000000000..dc89cbfd549dfba84493ae65e9dd330ea274f847
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/soEusDdNagrgREA5x2e3LWH.l differ
diff --git a/Scripts/TITO/slprj/_jitprj/soEusDdNagrgREA5x2e3LWH.mat b/Scripts/TITO/slprj/_jitprj/soEusDdNagrgREA5x2e3LWH.mat
new file mode 100644
index 0000000000000000000000000000000000000000..4eb212cf441d0b7bd3770532f10df6575c9381a3
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/soEusDdNagrgREA5x2e3LWH.mat differ
diff --git a/Scripts/TITO/slprj/_jitprj/suK5R10u93TdYmCcHziypSH.l b/Scripts/TITO/slprj/_jitprj/suK5R10u93TdYmCcHziypSH.l
new file mode 100644
index 0000000000000000000000000000000000000000..99e33fa48d9db6afb91b190fd9658e99873d5184
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/suK5R10u93TdYmCcHziypSH.l differ
diff --git a/Scripts/TITO/slprj/_jitprj/suK5R10u93TdYmCcHziypSH.mat b/Scripts/TITO/slprj/_jitprj/suK5R10u93TdYmCcHziypSH.mat
new file mode 100644
index 0000000000000000000000000000000000000000..c69d43afef6152bf24130952700ff6b55f8a9592
Binary files /dev/null and b/Scripts/TITO/slprj/_jitprj/suK5R10u93TdYmCcHziypSH.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/EMLReport/emlReportAccessInfo.mat b/Scripts/TITO/slprj/_sfprj/EMLReport/emlReportAccessInfo.mat
new file mode 100644
index 0000000000000000000000000000000000000000..3b8f3cda45db66a695851468d40ffeefd0e40bf5
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/EMLReport/emlReportAccessInfo.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/EMLReport/s4TPKMZGJBJjvMSDAQZgq3.mat b/Scripts/TITO/slprj/_sfprj/EMLReport/s4TPKMZGJBJjvMSDAQZgq3.mat
new file mode 100644
index 0000000000000000000000000000000000000000..b72015d70c30f598ca9b7ef8735d43d3680c0211
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/EMLReport/s4TPKMZGJBJjvMSDAQZgq3.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/EMLReport/sV7JtXXAAkmojCrcBZyKmYF.mat b/Scripts/TITO/slprj/_sfprj/EMLReport/sV7JtXXAAkmojCrcBZyKmYF.mat
new file mode 100644
index 0000000000000000000000000000000000000000..d51b9ef42aad995ad0eb404f3a3fd867fd04c32e
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/EMLReport/sV7JtXXAAkmojCrcBZyKmYF.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/EMLReport/sa2KJ1Bzvvs58Tl03TCNUCD.mat b/Scripts/TITO/slprj/_sfprj/EMLReport/sa2KJ1Bzvvs58Tl03TCNUCD.mat
new file mode 100644
index 0000000000000000000000000000000000000000..587c33439cdb4d5f79662e4a3ec02a97699516ee
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/EMLReport/sa2KJ1Bzvvs58Tl03TCNUCD.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/EMLReport/sevXm465YiM9JGSlvS9cCzG.mat b/Scripts/TITO/slprj/_sfprj/EMLReport/sevXm465YiM9JGSlvS9cCzG.mat
new file mode 100644
index 0000000000000000000000000000000000000000..47a75e9848556a927fdd887dfbb5730a5c0d8f5b
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/EMLReport/sevXm465YiM9JGSlvS9cCzG.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/EMLReport/soEusDdNagrgREA5x2e3LWH.mat b/Scripts/TITO/slprj/_sfprj/EMLReport/soEusDdNagrgREA5x2e3LWH.mat
new file mode 100644
index 0000000000000000000000000000000000000000..6da02adc138d36aad12a5febbda59d66e152795b
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/EMLReport/soEusDdNagrgREA5x2e3LWH.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/EMLReport/suK5R10u93TdYmCcHziypSH.mat b/Scripts/TITO/slprj/_sfprj/EMLReport/suK5R10u93TdYmCcHziypSH.mat
new file mode 100644
index 0000000000000000000000000000000000000000..69e3e2325d25879b96e7fb6ec5134f5453ff000c
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/EMLReport/suK5R10u93TdYmCcHziypSH.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/6Emunsz5YNDRdVmq1H6fXH.mat b/Scripts/TITO/slprj/_sfprj/precompile/6Emunsz5YNDRdVmq1H6fXH.mat
new file mode 100644
index 0000000000000000000000000000000000000000..2cf6d20ed712a2231ed8b6e8f63c1a87cde79430
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/6Emunsz5YNDRdVmq1H6fXH.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/9SgEBU6JuTI6TTrpwZs4UD.mat b/Scripts/TITO/slprj/_sfprj/precompile/9SgEBU6JuTI6TTrpwZs4UD.mat
new file mode 100644
index 0000000000000000000000000000000000000000..77ba7182714a0901ea71aa433e5acfbbad584e70
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/9SgEBU6JuTI6TTrpwZs4UD.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/OgIt9dy3ooEHaZyOkRH6lG.mat b/Scripts/TITO/slprj/_sfprj/precompile/OgIt9dy3ooEHaZyOkRH6lG.mat
new file mode 100644
index 0000000000000000000000000000000000000000..282fe61cecd3e6d8d5b7fd0c7cc400a63ca70e46
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/OgIt9dy3ooEHaZyOkRH6lG.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/WCTfm0CpFQC7pzgWXQcOaH.mat b/Scripts/TITO/slprj/_sfprj/precompile/WCTfm0CpFQC7pzgWXQcOaH.mat
new file mode 100644
index 0000000000000000000000000000000000000000..78136eab1684399e8676633369d7870de8a48e74
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/WCTfm0CpFQC7pzgWXQcOaH.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/XiHzsCwxsOLhgd8qpUQsgD.mat b/Scripts/TITO/slprj/_sfprj/precompile/XiHzsCwxsOLhgd8qpUQsgD.mat
new file mode 100644
index 0000000000000000000000000000000000000000..aada67913df6e27cfaf3d2b31e7b189111af1110
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/XiHzsCwxsOLhgd8qpUQsgD.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/Z3dDfRQGZL0eLezEdmkeEB.mat b/Scripts/TITO/slprj/_sfprj/precompile/Z3dDfRQGZL0eLezEdmkeEB.mat
new file mode 100644
index 0000000000000000000000000000000000000000..78136eab1684399e8676633369d7870de8a48e74
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/Z3dDfRQGZL0eLezEdmkeEB.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/autoInferAccessInfo.mat b/Scripts/TITO/slprj/_sfprj/precompile/autoInferAccessInfo.mat
new file mode 100644
index 0000000000000000000000000000000000000000..08859d89efc1ae0d06ed4d429f4898a799221394
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/autoInferAccessInfo.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/b3LVVx0jhUFurnMusrmojF.mat b/Scripts/TITO/slprj/_sfprj/precompile/b3LVVx0jhUFurnMusrmojF.mat
new file mode 100644
index 0000000000000000000000000000000000000000..d26ca3fe351c46f459a1c134d6c3501bb4e2f351
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/b3LVVx0jhUFurnMusrmojF.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/dKdZhBjnKJM4z5rwxGBe2.mat b/Scripts/TITO/slprj/_sfprj/precompile/dKdZhBjnKJM4z5rwxGBe2.mat
new file mode 100644
index 0000000000000000000000000000000000000000..2cf6d20ed712a2231ed8b6e8f63c1a87cde79430
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/dKdZhBjnKJM4z5rwxGBe2.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/hwl4PmuUX3gZz8bH7IlEZF.mat b/Scripts/TITO/slprj/_sfprj/precompile/hwl4PmuUX3gZz8bH7IlEZF.mat
new file mode 100644
index 0000000000000000000000000000000000000000..d26ca3fe351c46f459a1c134d6c3501bb4e2f351
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/hwl4PmuUX3gZz8bH7IlEZF.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/jneVrbzAMmvP15fz4bDxbG.mat b/Scripts/TITO/slprj/_sfprj/precompile/jneVrbzAMmvP15fz4bDxbG.mat
new file mode 100644
index 0000000000000000000000000000000000000000..663180d098a9e8e6b84cfd34e3de9f96587abe0b
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/jneVrbzAMmvP15fz4bDxbG.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/pkRtqON6yybhdoEGGZ6Vg.mat b/Scripts/TITO/slprj/_sfprj/precompile/pkRtqON6yybhdoEGGZ6Vg.mat
new file mode 100644
index 0000000000000000000000000000000000000000..a49266a80adc165eeebfcff08c731a2978f834dd
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/pkRtqON6yybhdoEGGZ6Vg.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/precompile/sikmhRvssQ8hSs7VfHYsUC.mat b/Scripts/TITO/slprj/_sfprj/precompile/sikmhRvssQ8hSs7VfHYsUC.mat
new file mode 100644
index 0000000000000000000000000000000000000000..77ba7182714a0901ea71aa433e5acfbbad584e70
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/precompile/sikmhRvssQ8hSs7VfHYsUC.mat differ
diff --git a/Scripts/TITO/slprj/_sfprj/tune_ystep_wb/_self/sfun/info/binfo.mat b/Scripts/TITO/slprj/_sfprj/tune_ystep_wb/_self/sfun/info/binfo.mat
new file mode 100644
index 0000000000000000000000000000000000000000..9b9f78ba83c76c0a99ffdf004840c8d435750f82
Binary files /dev/null and b/Scripts/TITO/slprj/_sfprj/tune_ystep_wb/_self/sfun/info/binfo.mat differ