diff --git a/Autotuners/tmpdata/README.md b/Autotuners/tmpdata/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0ce51ee09ca4b14620abc691ac8484a192f0df39 --- /dev/null +++ b/Autotuners/tmpdata/README.md @@ -0,0 +1 @@ +This folder is used as a storage folder inside the programs. mat-files will be stored here and then used later in the procedures. diff --git a/ExtraLTH/ATlibrary_LTH.mdl b/ExtraLTH/ATlibrary_LTH.mdl new file mode 100644 index 0000000000000000000000000000000000000000..189a5c675ffacaf51a794f64b853ad1897e40853 --- /dev/null +++ b/ExtraLTH/ATlibrary_LTH.mdl @@ -0,0 +1,7501 @@ +Model { + Name "ATlibrary_2012a" + Version 7.9 + MdlSubVersion 0 + GraphicalInterface { + NumRootInports 0 + NumRootOutports 0 + ParameterArgumentNames "" + ComputedModelVersion "1.59" + NumModelReferences 0 + NumTestPointedSignals 0 + } + SavedCharacterEncoding "UTF-8" + slprops.hdlmdlprops { + $PropName "HDLParams" + $ObjectID 1 + Array { + Type "Cell" + Dimension 2 + Cell "HDLSubsystem" + Cell "ATlibrary_2012a" + PropName "mdlProps" + } + } + SaveDefaultBlockParams on + ScopeRefreshTime 0.035000 + OverrideScopeRefreshTime on + DisableAllScopes off + DataTypeOverride "UseLocalSettings" + DataTypeOverrideAppliesTo "AllNumericTypes" + MinMaxOverflowLogging "UseLocalSettings" + MinMaxOverflowArchiveMode "Overwrite" + FPTRunName "Run 1" + MaxMDLFileLineLength 120 + Created "Wed Apr 26 11:16:02 2017" + Creator "josefinb" + UpdateHistory "UpdateHistoryNever" + ModifiedByFormat "%<Auto>" + LastModifiedBy "josefinb" + ModifiedDateFormat "%<Auto>" + LastModifiedDate "Fri Dec 08 13:36:33 2017" + RTWModifiedTimeStamp 433170707 + ModelVersionFormat "1.%<AutoIncrement:59>" + ConfigurationManager "none" + SampleTimeColors off + SampleTimeAnnotations off + LibraryLinkDisplay "disabled" + WideLines off + ShowLineDimensions off + ShowPortDataTypes off + ShowDesignRanges off + ShowLoopsOnError on + IgnoreBidirectionalLines off + ShowStorageClass off + ShowTestPointIcons on + ShowSignalResolutionIcons on + ShowViewerIcons on + SortedOrder off + ExecutionContextIcon off + ShowLinearizationAnnotations on + BlockNameDataTip off + BlockParametersDataTip off + 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 + Object { + $PropName "DataLoggingOverride" + $ObjectID 2 + $ClassName "Simulink.SimulationData.ModelLoggingInfo" + model_ "test_versions" + overrideMode_ [0.0] + Array { + Type "Cell" + Dimension 1 + Cell "test_versions" + PropName "logAsSpecifiedByModels_" + } + Array { + Type "Cell" + Dimension 1 + Cell [] + PropName "logAsSpecifiedByModelsSSIDs_" + } + } + 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 "normal" + ExtModeTrigPort "1" + ExtModeTrigElement "any" + ExtModeTrigDuration 1000 + ExtModeTrigDurationFloating "auto" + ExtModeTrigHoldOff 0 + ExtModeTrigDelay 0 + ExtModeTrigDirection "rising" + ExtModeTrigLevel 0 + ExtModeArchiveMode "off" + ExtModeAutoIncOneShot off + ExtModeIncDirWhenArm off + ExtModeAddSuffixToVar off + ExtModeWriteAllDataToWs off + ExtModeArmWhenConnect on + ExtModeSkipDownloadWhenConnect off + ExtModeLogAll on + ExtModeAutoUpdateStatusClock on + BufferReuse on + ShowModelReferenceBlockVersion off + ShowModelReferenceBlockIO off + Array { + Type "Handle" + Dimension 1 + Simulink.ConfigSet { + $ObjectID 3 + Version "1.12.0" + Array { + Type "Handle" + Dimension 9 + Simulink.SolverCC { + $ObjectID 4 + Version "1.12.0" + StartTime "0.0" + StopTime "10.0" + AbsTol "auto" + FixedStep "auto" + InitialStep "auto" + MaxNumMinSteps "-1" + MaxOrder 5 + ZcThreshold "auto" + ConsecutiveZCsStepRelTol "10*128*eps" + MaxConsecutiveZCs "1000" + ExtrapolationOrder 4 + NumberNewtonIterations 1 + MaxStep "auto" + MinStep "auto" + MaxConsecutiveMinStep "1" + RelTol "1e-3" + SolverMode "Auto" + EnableConcurrentExecution off + ConcurrentTasks off + Solver "ode45" + SolverName "ode45" + SolverJacobianMethodControl "auto" + ShapePreserveControl "DisableAll" + ZeroCrossControl "UseLocalSettings" + ZeroCrossAlgorithm "Nonadaptive" + AlgebraicLoopSolver "TrustRegion" + SolverResetMethod "Fast" + PositivePriorityOrder off + AutoInsertRateTranBlk off + SampleTimeConstraint "Unconstrained" + InsertRTBMode "Whenever possible" + } + Simulink.DataIOCC { + $ObjectID 5 + Version "1.12.0" + Decimation "1" + ExternalInput "[t, u]" + FinalStateName "xFinal" + InitialState "xInitial" + LimitDataPoints off + MaxDataPoints "1000" + LoadExternalInput off + LoadInitialState off + SaveFinalState off + SaveCompleteFinalSimState off + SaveFormat "StructureWithTime" + SignalLoggingSaveFormat "Dataset" + 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 6 + Version "1.12.0" + Array { + Type "Cell" + Dimension 8 + Cell "BooleansAsBitfields" + Cell "PassReuseOutputArgsAs" + Cell "PassReuseOutputArgsThreshold" + Cell "ZeroExternalMemoryAtStartup" + Cell "ZeroInternalMemoryAtStartup" + Cell "OptimizeModelRefInitCode" + Cell "NoFixptDivByZeroProtection" + Cell "UseSpecifiedMinMax" + PropName "DisabledProps" + } + BlockReduction on + BooleanDataType on + ConditionallyExecuteInputs on + InlineParams off + 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 128 + FoldNonRolledExpr on + LocalBlockOutputs on + RollThreshold 5 + SystemCodeInlineAuto off + StateBitsets off + DataBitsets off + UseTempVars off + ZeroExternalMemoryAtStartup on + ZeroInternalMemoryAtStartup on + InitFltsAndDblsToZero off + NoFixptDivByZeroProtection off + EfficientFloat2IntCast off + EfficientMapNaN2IntZero on + OptimizeModelRefInitCode off + LifeSpan "inf" + MaxStackSize "Inherit from target" + BufferReusableBoundary on + SimCompilerOptimization "Off" + AccelVerboseBuild off + ParallelExecutionInRapidAccelerator on + } + Simulink.DebuggingCC { + $ObjectID 7 + 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 "warning" + CheckSSInitialOutputMsg on + UnderspecifiedInitializationDetection "Simplified" + MergeDetectMultiDrivingBlocksExec "error" + CheckExecutionContextPreStartOutputMsg off + CheckExecutionContextRuntimeOutputMsg off + SignalResolutionControl "UseLocalSettings" + BlockPriorityViolationMsg "warning" + MinStepSizeMsg "warning" + TimeAdjustmentMsg "none" + MaxConsecutiveZCsMsg "error" + MaskedZcDiagnostic "warning" + IgnoredZcDiagnostic "warning" + SolverPrmCheckMsg "none" + InheritedTsInSrcMsg "warning" + DiscreteInheritContinuousMsg "warning" + MultiTaskDSMMsg "error" + MultiTaskCondExecSysMsg "error" + MultiTaskRateTransMsg "error" + SingleTaskRateTransMsg "none" + TasksWithSamePriorityMsg "warning" + SigSpecEnsureSampleTimeMsg "warning" + CheckMatrixSingularityMsg "none" + IntegerOverflowMsg "warning" + Int32ToFloatConvMsg "warning" + ParameterDowncastMsg "error" + ParameterOverflowMsg "error" + ParameterUnderflowMsg "none" + ParameterPrecisionLossMsg "warning" + ParameterTunabilityLossMsg "warning" + FixptConstUnderflowMsg "none" + FixptConstOverflowMsg "none" + FixptConstPrecisionLossMsg "none" + UnderSpecifiedDataTypeMsg "none" + UnnecessaryDatatypeConvMsg "none" + VectorMatrixConversionMsg "none" + InvalidFcnCallConnMsg "error" + FcnCallInpInsideContextMsg "Enable All" + 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 "none" + 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 8 + Version "1.12.0" + ProdBitPerChar 8 + ProdBitPerShort 16 + ProdBitPerInt 32 + ProdBitPerLong 32 + ProdBitPerFloat 32 + ProdBitPerDouble 64 + ProdBitPerPointer 64 + ProdLargestAtomicInteger "Char" + ProdLargestAtomicFloat "Float" + ProdIntDivRoundTo "Zero" + ProdEndianess "LittleEndian" + ProdWordSize 32 + ProdShiftRightIntArith on + ProdHWDeviceType "Specified" + 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 off + ProdEqTarget on + } + Simulink.ModelReferenceCC { + $ObjectID 9 + 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 on + SupportModelReferenceSimTargetCustomCode off + } + Simulink.SFSimCC { + $ObjectID 10 + 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 11 + Version "1.12.0" + Array { + Type "Cell" + Dimension 15 + Cell "IncludeHyperlinkInReport" + Cell "GenerateTraceInfo" + Cell "GenerateTraceReport" + Cell "GenerateTraceReportSl" + Cell "GenerateTraceReportSf" + Cell "GenerateTraceReportEml" + Cell "PortableWordSizes" + Cell "GenerateWebview" + Cell "GenerateCodeMetricsReport" + Cell "GenerateCodeReplacementReport" + Cell "GenerateErtSFunction" + Cell "CreateSILPILBlock" + Cell "CodeExecutionProfiling" + Cell "CodeProfilingSaveOptions" + Cell "CodeProfilingInstrumentation" + PropName "DisabledProps" + } + 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 12 + Version "1.12.0" + Array { + Type "Cell" + Dimension 23 + Cell "IgnoreCustomStorageClasses" + Cell "IgnoreTestpoints" + Cell "InsertBlockDesc" + Cell "InsertPolySpaceComments" + Cell "SFDataObjDesc" + Cell "MATLABFcnDesc" + Cell "SimulinkDataObjDesc" + Cell "DefineNamingRule" + Cell "SignalNamingRule" + Cell "ParamNamingRule" + Cell "InternalIdentifier" + Cell "InlinedPrmAccess" + Cell "CustomSymbolStr" + Cell "CustomSymbolStrGlobalVar" + Cell "CustomSymbolStrType" + Cell "CustomSymbolStrField" + Cell "CustomSymbolStrFcn" + Cell "CustomSymbolStrFcnArg" + Cell "CustomSymbolStrBlkIO" + Cell "CustomSymbolStrTmpVar" + Cell "CustomSymbolStrMacro" + Cell "CustomSymbolStrUtil" + Cell "ReqsInCode" + PropName "DisabledProps" + } + 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 13 + Version "1.12.0" + Array { + Type "Cell" + Dimension 14 + Cell "GeneratePreprocessorConditionals" + Cell "IncludeMdlTerminateFcn" + Cell "SupportNonInlinedSFcns" + Cell "SuppressErrorStatus" + Cell "ERTCustomFileBanners" + Cell "GenerateSampleERTMain" + Cell "GenerateTestInterfaces" + Cell "ModelStepFunctionPrototypeControlCompliant" + Cell "MultiInstanceERTCode" + Cell "PurelyIntegerCode" + Cell "SupportComplex" + Cell "SupportAbsoluteTime" + Cell "SupportContinuousTime" + Cell "CombineOutputUpdateFcns" + PropName "DisabledProps" + } + TargetFcnLib "ansi_tfl_table_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 on + ParMdlRefBuildCompliant on + CompOptLevelCompliant on + ConcurrentExecutionCompliant on + IncludeMdlTerminateFcn on + GeneratePreprocessorConditionals "Disable all" + CombineOutputUpdateFcns on + CombineSignalStateStructs off + SuppressErrorStatus off + ERTFirstTimeCompliant off + IncludeFileDelimiter "Auto" + ERTCustomFileBanners off + SupportAbsoluteTime on + LogVarNameModifier "rt_" + MatFileLogging on + 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 off + 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" + } + } + hdlcoderui.hdlcc { + $ObjectID 14 + Version "1.12.0" + Description "HDL Coder custom configuration component" + Name "HDL Coder" + Array { + Type "Cell" + Dimension 1 + Cell " " + PropName "HDLConfigFile" + } + HDLCActiveTab "0" + } + PropName "Components" + } + Name "Configuration" + CurrentDlgPage "Solver" + ConfigPrmDlgPosition [ 382, 183, 1538, 980 ] + } + PropName "ConfigurationSets" + } + Simulink.ConfigSet { + $PropName "ActiveConfigurationSet" + $ObjectID 3 + } + 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 Clock + DisplayTime off + Decimation "10" + } + 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 Gain + Gain "1" + Multiplication "Element-wise(K.*u)" + ParamMin "[]" + ParamMax "[]" + ParamDataTypeStr "Inherit: Same as input" + OutMin "[]" + OutMax "[]" + OutDataTypeStr "Inherit: Same as input" + LockScale off + RndMeth "Floor" + SaturateOnIntegerOverflow on + SampleTime "-1" + } + Block { + BlockType Ground + } + Block { + BlockType Inport + Port "1" + OutputFunctionCall off + OutMin "[]" + OutMax "[]" + OutDataTypeStr "Inherit: auto" + LockScale off + BusOutputAsStruct off + PortDimensions "-1" + VarSizeSig "Inherit" + SampleTime "-1" + SignalType "auto" + SamplingMode "auto" + LatchByDelayingOutsideSignal off + LatchInputForFeedbackSignals off + Interpolate on + } + Block { + BlockType MATLABFcn + MATLABFcn "sin" + OutputDimensions "-1" + OutputSignalType "auto" + Output1D on + SampleTime "-1" + } + 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 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 "ATlibrary_2012a" + Location [569, 348, 1187, 859] + 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 "954" + Block { + BlockType SubSystem + Name "ECA Hardware" + SID "607" + Ports [1, 1] + Position [215, 134, 290, 196] + ZOrder 159 + BackgroundColor "yellow" + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + System { + Name "ECA Hardware" + Location [312, 179, 1215, 754] + 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 "[ y ]" + SID "608" + Position [25, 103, 55, 117] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Demux + Name "Demux" + SID "609" + Ports [1, 2] + Position [640, 62, 645, 153] + ZOrder -7 + ShowName off + Outputs "2" + DisplayOption "bar" + } + Block { + BlockType Gain + Name "Gain" + SID "610" + Position [695, 66, 755, 104] + ZOrder -8 + Gain "500/470" + ParamDataTypeStr "Inherit: Inherit via internal rule" + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Gain + Name "Gain1" + SID "611" + Position [695, 111, 755, 149] + ZOrder -8 + Gain "500/470" + ParamDataTypeStr "Inherit: Inherit via internal rule" + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Gain + Name "Gain2" + SID "612" + Position [135, 67, 180, 103] + ZOrder -11 + Gain "0.5" + } + Block { + BlockType Gain + Name "Gain3" + SID "613" + Position [135, 112, 180, 148] + ZOrder -12 + Gain "0.5" + } + Block { + BlockType Ground + Name "Ground" + SID "614" + Position [460, 90, 480, 110] + ZOrder -13 + ShowName off + } + Block { + BlockType Ground + Name "Ground1" + SID "615" + Position [55, 60, 75, 80] + ZOrder -13 + ShowName off + } + Block { + BlockType Mux + Name "Mux1" + SID "616" + Ports [2, 1] + Position [235, 61, 240, 154] + ZOrder -12 + ShowName off + Inputs "2" + DisplayOption "bar" + } + Block { + BlockType S-Function + Name "S-Function" + SID "617" + Ports [1, 2] + Position [510, 74, 595, 121] + ZOrder -16 + ShowName off + FunctionName "analogin" + Parameters "simopt.h [1 0]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "S-Function2" + SID "618" + Ports [2, 1] + Position [315, 78, 395, 122] + ZOrder -17 + ShowName off + FunctionName "analogout" + Parameters "simopt.h [1 0]" + EnableBusSupport off + } + Block { + BlockType Terminator + Name "Terminator" + SID "619" + Position [425, 90, 445, 110] + ZOrder -18 + ShowName off + } + Block { + BlockType Terminator + Name "Terminator1" + SID "620" + Position [820, 75, 840, 95] + ZOrder -18 + ShowName off + } + Block { + BlockType Outport + Name "[ u ]" + SID "621" + Position [830, 103, 860, 117] + ZOrder -19 + IconDisplay "Port number" + InitialOutput "0" + } + Line { + SrcBlock "Gain3" + SrcPort 1 + DstBlock "Mux1" + DstPort 2 + } + Line { + SrcBlock "Gain2" + SrcPort 1 + DstBlock "Mux1" + DstPort 1 + } + Line { + SrcBlock "Gain1" + SrcPort 1 + Points [25, 0; 0, -20] + DstBlock "[ u ]" + DstPort 1 + } + Line { + SrcBlock "Demux" + SrcPort 2 + DstBlock "Gain1" + DstPort 1 + } + Line { + SrcBlock "Demux" + SrcPort 1 + DstBlock "Gain" + DstPort 1 + } + Line { + SrcBlock "Gain" + SrcPort 1 + DstBlock "Terminator1" + DstPort 1 + } + Line { + SrcBlock "Ground1" + SrcPort 1 + Points [0, 15] + DstBlock "Gain2" + DstPort 1 + } + Line { + SrcBlock "[ y ]" + SrcPort 1 + Points [35, 0; 0, 20] + DstBlock "Gain3" + DstPort 1 + } + Line { + SrcBlock "Mux1" + SrcPort 1 + DstBlock "S-Function2" + DstPort 2 + } + Line { + SrcBlock "S-Function" + SrcPort 2 + DstBlock "Demux" + DstPort 1 + } + Line { + SrcBlock "S-Function" + SrcPort 1 + Points [20, 0; 0, -40; -320, 0] + DstBlock "S-Function2" + DstPort 1 + } + Line { + SrcBlock "S-Function2" + SrcPort 1 + DstBlock "Terminator" + DstPort 1 + } + Line { + SrcBlock "Ground" + SrcPort 1 + DstBlock "S-Function" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Honeywell Hardware" + SID "754" + Ports [1, 1] + Position [100, 134, 175, 196] + ZOrder 159 + BackgroundColor "yellow" + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + System { + Name "Honeywell Hardware" + Location [302, 513, 1205, 1088] + 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 "[ y ]" + SID "755" + Position [25, 103, 55, 117] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Demux + Name "Demux" + SID "756" + Ports [1, 2] + Position [640, 62, 645, 153] + ZOrder -7 + ShowName off + Outputs "2" + DisplayOption "bar" + } + Block { + BlockType Gain + Name "Gain" + SID "757" + Position [695, 66, 755, 104] + ZOrder -8 + Gain "500/390" + ParamDataTypeStr "Inherit: Inherit via internal rule" + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Gain + Name "Gain1" + SID "758" + Position [695, 111, 755, 149] + ZOrder -8 + Gain "500/390" + ParamDataTypeStr "Inherit: Inherit via internal rule" + OutDataTypeStr "Inherit: Inherit via internal rule" + SaturateOnIntegerOverflow off + } + Block { + BlockType Gain + Name "Gain2" + SID "759" + Position [135, 67, 180, 103] + ZOrder -11 + } + Block { + BlockType Gain + Name "Gain3" + SID "760" + Position [135, 112, 180, 148] + ZOrder -12 + } + Block { + BlockType Ground + Name "Ground" + SID "761" + Position [460, 90, 480, 110] + ZOrder -13 + ShowName off + } + Block { + BlockType Ground + Name "Ground1" + SID "762" + Position [55, 60, 75, 80] + ZOrder -13 + ShowName off + } + Block { + BlockType Mux + Name "Mux1" + SID "763" + Ports [2, 1] + Position [235, 61, 240, 154] + ZOrder -12 + ShowName off + Inputs "2" + DisplayOption "bar" + } + Block { + BlockType S-Function + Name "S-Function" + SID "764" + Ports [1, 2] + Position [510, 74, 595, 121] + ZOrder -16 + ShowName off + FunctionName "analogin" + Parameters "simopt.h [1 0]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "S-Function2" + SID "765" + Ports [2, 1] + Position [315, 78, 395, 122] + ZOrder -17 + ShowName off + FunctionName "analogout" + Parameters "simopt.h [1 0]" + EnableBusSupport off + } + Block { + BlockType Terminator + Name "Terminator" + SID "766" + Position [425, 90, 445, 110] + ZOrder -18 + ShowName off + } + Block { + BlockType Terminator + Name "Terminator1" + SID "767" + Position [820, 75, 840, 95] + ZOrder -18 + ShowName off + } + Block { + BlockType Outport + Name "[ u ]" + SID "768" + Position [830, 103, 860, 117] + ZOrder -19 + IconDisplay "Port number" + InitialOutput "0" + } + Line { + SrcBlock "Ground" + SrcPort 1 + DstBlock "S-Function" + DstPort 1 + } + Line { + SrcBlock "S-Function2" + SrcPort 1 + DstBlock "Terminator" + DstPort 1 + } + Line { + SrcBlock "S-Function" + SrcPort 1 + Points [20, 0; 0, -40; -320, 0] + DstBlock "S-Function2" + DstPort 1 + } + Line { + SrcBlock "S-Function" + SrcPort 2 + DstBlock "Demux" + DstPort 1 + } + Line { + SrcBlock "Mux1" + SrcPort 1 + DstBlock "S-Function2" + DstPort 2 + } + Line { + SrcBlock "[ y ]" + SrcPort 1 + Points [35, 0; 0, 20] + DstBlock "Gain3" + DstPort 1 + } + Line { + SrcBlock "Ground1" + SrcPort 1 + Points [0, 15] + DstBlock "Gain2" + DstPort 1 + } + Line { + SrcBlock "Gain" + SrcPort 1 + DstBlock "Terminator1" + DstPort 1 + } + Line { + SrcBlock "Demux" + SrcPort 1 + DstBlock "Gain" + DstPort 1 + } + Line { + SrcBlock "Demux" + SrcPort 2 + DstBlock "Gain1" + DstPort 1 + } + Line { + SrcBlock "Gain1" + SrcPort 1 + Points [25, 0; 0, -20] + DstBlock "[ u ]" + DstPort 1 + } + Line { + SrcBlock "Gain2" + SrcPort 1 + DstBlock "Mux1" + DstPort 1 + } + Line { + SrcBlock "Gain3" + SrcPort 1 + DstBlock "Mux1" + DstPort 2 + } + } + } + Block { + BlockType SubSystem + Name "NOMAD" + SID "694" + Ports [1, 1] + Position [215, 40, 290, 80] + ZOrder 1 + BackgroundColor "lightBlue" + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + VariantObject "simopt.ID~=0" + System { + Name "NOMAD" + Location [337, 473, 1164, 922] + 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 "e" + SID "695" + Position [105, 45, 125, 65] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Reference + Name "Compare\nTo Constant" + SID "696" + Ports [1, 1] + Position [105, 145, 165, 175] + 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 "ConstU" + SID "697" + Position [120, 215, 150, 245] + ZOrder 117 + Value "params.ustart" + SampleTime "simopt.h" + } + Block { + BlockType Constant + Name "Constant" + SID "698" + Position [20, 15, 50, 45] + ZOrder 109 + Value "[params.asym simopt.h 1 simopt.uon params.hyst params.noiseMeasureTime] " + } + Block { + BlockType DigitalClock + Name "Digital Clock" + SID "699" + Position [15, 148, 80, 172] + ZOrder -8 + SampleTime "simopt.h" + } + Block { + BlockType SubSystem + Name "Halt logics" + SID "700" + Ports [1] + Position [570, 285, 610, 345] + ZOrder 79 + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + VariantObject "Variant" + System { + Name "Halt logics" + Location [661, 137, 1730, 1016] + 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 "u" + SID "701" + Position [45, 53, 75, 67] + ZOrder 77 + IconDisplay "Port number" + } + Block { + BlockType Reference + Name "Compare To Constant" + SID "702" + Ports [1, 1] + Position [205, 45, 310, 75] + ZOrder 46 + LibraryVersion "1.260" + SourceBlock "simulink/Logic and Bit\nOperations/Compare\nTo Constant" + SourceType "Compare To Constant" + relop ">=" + const "params.switches" + OutDataTypeStr "boolean" + ZeroCross on + } + Block { + BlockType Stop + Name "Stop Simulation" + SID "703" + Position [370, 42, 405, 78] + ZOrder 45 + } + Block { + BlockType Reference + Name "Switch counter" + SID "704" + Ports [1, 1] + Position [105, 30, 175, 90] + ZOrder 44 + LibraryVersion "1.225" + SourceBlock "dspswit3/Counter" + SourceType "Counter" + Direction "Up" + CountEvent "Either edge" + CounterSize "User defined" + MaxCount "params.switches" + InitialCount "0" + Output "Count" + HitValue "32" + ResetInput off + SamplesPerFrame "1" + Ts "1" + CntDtype "double" + HitDtype "Logical" + } + Line { + SrcBlock "Compare To Constant" + SrcPort 1 + DstBlock "Stop Simulation" + DstPort 1 + } + Line { + SrcBlock "u" + SrcPort 1 + DstBlock "Switch counter" + DstPort 1 + } + Line { + SrcBlock "Switch counter" + SrcPort 1 + DstBlock "Compare To Constant" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Logger" + SID "705" + Ports [1] + Position [385, 21, 440, 59] + ZOrder 115 + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + System { + Name "Logger" + Location [661, 211, 1730, 1090] + 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 "result" + SID "706" + Position [20, 43, 50, 57] + ZOrder 88 + IconDisplay "Port number" + SampleTime "simopt.h" + } + Block { + BlockType ToWorkspace + Name "Logger" + SID "707" + 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 Scope + Name "Scope1" + SID "708" + Ports [1] + Position [530, 214, 560, 246] + ZOrder 148 + Floating off + Location [142, 93, 726, 483] + 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 "4.75" + YMax "5.25" + DataFormat "StructureWithTime" + LimitDataPoints off + } + Block { + BlockType Scope + Name "Scope3" + SID "709" + Ports [1] + Position [630, 149, 660, 181] + ZOrder 148 + Floating off + Location [152, 93, 736, 483] + 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 "4.75" + YMax "5.25" + SaveName "ScopeData4" + DataFormat "StructureWithTime" + LimitDataPoints off + } + Block { + BlockType Sum + Name "Sum" + SID "710" + Ports [2, 1] + Position [480, 305, 500, 325] + ZOrder -5 + ShowName off + IconShape "round" + Inputs "|+-" + } + Block { + BlockType Switch + Name "Switch" + SID "711" + Position [370, 125, 420, 165] + ZOrder 62 + Criteria "u2 ~= 0" + InputSameDT off + SaturateOnIntegerOverflow off + } + Block { + BlockType SubSystem + Name "relay_exp\n" + SID "712" + Ports [4, 2] + Position [230, 19, 330, 91] + ZOrder 114 + 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" + VariantObject "Variant" + MaskType "Stateflow" + MaskDescription "Embedded MATLAB block" + MaskSelfModifiable on + MaskDisplay "bgColor = Simulink.Root.ColorString2Rgb(get_param(gcbh, 'BackgroundColor')); image(imread('private/" + "eml_membrane_16.png','png','BackgroundColor',bgColor(1:3)),'center'); disp([10 10 'relay_function']);" + 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 "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "45" + Block { + BlockType Inport + Name "relay_par" + SID "712::42" + Position [20, 101, 40, 119] + ZOrder 27 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "e" + SID "712::23" + Position [20, 136, 40, 154] + ZOrder 9 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "u0" + SID "712::45" + Position [20, 171, 40, 189] + ZOrder 30 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "run_exp" + SID "712::44" + Position [20, 206, 40, 224] + ZOrder 29 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "712::40" + Ports [1, 1] + Position [270, 215, 320, 255] + ZOrder 25 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "712::39" + Tag "Stateflow S-Function ATlibrary_2012a 1" + Ports [4, 3] + Position [180, 112, 230, 213] + ZOrder 24 + FunctionName "sf_sfun" + PortCounts "[4 3]" + EnableBusSupport on + Port { + PortNumber 2 + Name "result" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + Port { + PortNumber 3 + Name "u" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + } + Block { + BlockType Terminator + Name " Terminator " + SID "712::41" + Position [460, 226, 480, 244] + ZOrder 26 + } + Block { + BlockType Outport + Name "result" + SID "712::43" + Position [460, 101, 480, 119] + ZOrder 28 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "u" + SID "712::27" + Position [460, 136, 480, 154] + ZOrder 13 + Port "2" + IconDisplay "Port number" + } + Line { + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + Line { + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + 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 4 + } + Line { + SrcBlock "u0" + 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 Outport + Name "u" + SID "713" + Position [490, 135, 510, 155] + ZOrder -2 + IconDisplay "Port number" + } + Line { + SrcBlock "Sum" + SrcPort 1 + DstBlock "Halt logics" + DstPort 1 + } + Line { + SrcBlock "Switch" + SrcPort 1 + Points [25, 0] + Branch { + Points [0, 80] + Branch { + Points [0, 90] + DstBlock "Sum" + DstPort 1 + } + Branch { + Points [0, 5] + DstBlock "Scope1" + DstPort 1 + } + } + Branch { + Points [15, 0] + Branch { + Points [0, 20] + DstBlock "Scope3" + DstPort 1 + } + Branch { + DstBlock "u" + DstPort 1 + } + } + } + Line { + SrcBlock "Compare\nTo Constant" + SrcPort 1 + Points [5, 0; 0, -15] + Branch { + DstBlock "Switch" + DstPort 2 + } + Branch { + Points [0, -60] + DstBlock "relay_exp\n" + DstPort 4 + } + } + Line { + SrcBlock "ConstU" + SrcPort 1 + Points [50, 0] + Branch { + Points [75, 0] + Branch { + Points [0, 135; 210, 0] + DstBlock "Sum" + DstPort 2 + } + Branch { + Points [17, 0; 0, -70] + DstBlock "Switch" + DstPort 3 + } + } + Branch { + Points [0, -165] + DstBlock "relay_exp\n" + DstPort 3 + } + } + Line { + SrcBlock "Digital Clock" + SrcPort 1 + DstBlock "Compare\nTo Constant" + DstPort 1 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 1 + DstBlock "Logger" + DstPort 1 + } + Line { + SrcBlock "Constant" + SrcPort 1 + Points [160, 0] + DstBlock "relay_exp\n" + DstPort 1 + } + Line { + SrcBlock "e" + SrcPort 1 + Points [85, 0] + DstBlock "relay_exp\n" + DstPort 2 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 2 + Points [10, 0; 0, 55] + DstBlock "Switch" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Real Quadtank" + SID "582" + Ports [2, 4] + Position [100, 365, 190, 460] + ZOrder -1 + BackgroundColor "green" + AncestorBlock "tank/Real Quadtank" + LibraryVersion "*" + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + MaskPromptString "h" + MaskStyleString "edit" + MaskVariables "h=@1;" + MaskTunableValueString "on" + MaskEnableString "on" + MaskVisibilityString "on" + MaskToolTipString "on" + MaskIconFrame on + MaskIconOpaque on + MaskIconRotate "none" + MaskPortRotate "default" + MaskIconUnits "autoscale" + MaskValueString "0.01" + System { + Name "Real Quadtank" + Location [169, -29, 1242, 1124] + Open off + ModelBrowserVisibility off + ModelBrowserWidth 200 + ScreenColor "white" + PaperOrientation "landscape" + PaperPositionMode "auto" + PaperType "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "34" + Block { + BlockType Inport + Name "u1" + SID "582:1" + Position [260, 148, 290, 162] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "u2" + SID "582:2" + Position [260, 408, 290, 422] + ZOrder -2 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType S-Function + Name "AnalogIn 0" + SID "582:3" + Ports [1, 2] + Position [150, 112, 210, 143] + ZOrder -3 + FunctionName "analogin" + Parameters "h [35]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogIn 1" + SID "582:4" + Ports [1, 2] + Position [150, 372, 210, 403] + ZOrder -4 + FunctionName "analogin" + Parameters "h [34]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogIn 2" + SID "582:5" + Ports [1, 2] + Position [150, 452, 210, 483] + ZOrder -5 + FunctionName "analogin" + Parameters "h [33]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogIn 3" + SID "582:6" + Ports [1, 2] + Position [150, 187, 210, 218] + ZOrder -6 + FunctionName "analogin" + Parameters "h [31]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogIn 4" + SID "582:7" + Ports [1, 2] + Position [150, 287, 210, 318] + ZOrder -7 + FunctionName "analogin" + Parameters "h [30]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogIn 5" + SID "582:8" + Ports [1, 2] + Position [150, 552, 210, 583] + ZOrder -8 + FunctionName "analogin" + Parameters "h [32]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogOut 0" + SID "582:9" + Ports [2, 1] + Position [455, 112, 515, 143] + ZOrder -9 + FunctionName "analogout" + Parameters "h [31]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogOut 1" + SID "582:10" + Ports [2, 1] + Position [460, 372, 520, 403] + ZOrder -10 + FunctionName "analogout" + Parameters "h [30]" + EnableBusSupport off + } + Block { + BlockType Ground + Name "Ground" + SID "582:11" + Position [95, 120, 115, 140] + ZOrder -11 + } + Block { + BlockType Ground + Name "Ground1" + SID "582:12" + Position [95, 380, 115, 400] + ZOrder -12 + } + Block { + BlockType TransferFcn + Name "LP 1" + SID "582:13" + Position [300, 192, 360, 228] + ZOrder -13 + Denominator "[0.04 0.4 1]" + } + Block { + BlockType TransferFcn + Name "LP 2" + SID "582:14" + Position [300, 457, 360, 493] + ZOrder -14 + Denominator "[0.04 0.4 1]" + } + Block { + BlockType TransferFcn + Name "LP 3" + SID "582:15" + Position [300, 292, 360, 328] + ZOrder -15 + Denominator "[0.04 0.4 1]" + } + Block { + BlockType TransferFcn + Name "LP 4" + SID "582:16" + Position [305, 557, 365, 593] + ZOrder -16 + Denominator "[0.04 0.4 1]" + } + Block { + BlockType Mux + Name "Mux" + SID "582:17" + Ports [2, 1] + Position [315, 123, 320, 167] + ZOrder -17 + ShowName off + Inputs "2" + DisplayOption "bar" + } + Block { + BlockType Mux + Name "Mux1" + SID "582:18" + Ports [2, 1] + Position [315, 383, 320, 427] + ZOrder -18 + ShowName off + Inputs "2" + DisplayOption "bar" + } + Block { + BlockType S-Function + Name "S-Function2" + SID "582:19" + Ports [0, 1] + Position [110, 30, 170, 60] + ZOrder -19 + FunctionName "realtimer" + Parameters "h" + EnableBusSupport off + } + Block { + BlockType Scope + Name "Scope" + SID "582:20" + Ports [1] + Position [225, 29, 255, 61] + ZOrder -20 + Floating off + Location [48, 426, 372, 665] + Open off + NumInputPorts "1" + List { + ListType AxesTitles + axes1 "%<SignalLabel>" + } + ShowLegends off + YMin "2.77556e-17" + YMax "0.45" + DataFormat "StructureWithTime" + SampleTime "0" + } + Block { + BlockType Terminator + Name "Terminator" + SID "582:21" + Position [545, 120, 565, 140] + ZOrder -21 + } + Block { + BlockType Terminator + Name "Terminator1" + SID "582:22" + Position [550, 380, 570, 400] + ZOrder -22 + } + Block { + BlockType Terminator + Name "Terminator2" + SID "582:23" + Position [240, 185, 260, 205] + ZOrder -23 + } + Block { + BlockType Terminator + Name "Terminator3" + SID "582:24" + Position [240, 285, 260, 305] + ZOrder -24 + } + Block { + BlockType Terminator + Name "Terminator4" + SID "582:25" + Position [235, 450, 255, 470] + ZOrder -25 + } + Block { + BlockType Terminator + Name "Terminator5" + SID "582:26" + Position [240, 550, 260, 570] + ZOrder -26 + } + Block { + BlockType MATLABFcn + Name "flow controller 1" + SID "582:27" + Ports [1, 1] + Position [345, 130, 405, 160] + ZOrder -27 + MATLABFcn "flowCtrl1" + SampleTime "0.01" + } + Block { + BlockType MATLABFcn + Name "flow controller 2" + SID "582:28" + Ports [1, 1] + Position [350, 390, 410, 420] + ZOrder -28 + MATLABFcn "flowCtrl2" + SampleTime "0.01" + } + Block { + BlockType Outport + Name "y1" + SID "582:29" + Position [385, 203, 415, 217] + ZOrder -29 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "y2" + SID "582:30" + Position [385, 468, 415, 482] + ZOrder -30 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "y3" + SID "582:31" + Position [385, 303, 415, 317] + ZOrder -31 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "y4" + SID "582:32" + Position [390, 568, 420, 582] + ZOrder -32 + Port "4" + IconDisplay "Port number" + } + Line { + SrcBlock "S-Function2" + SrcPort 1 + DstBlock "Scope" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 0" + SrcPort 1 + DstBlock "AnalogOut 0" + DstPort 1 + } + Line { + SrcBlock "AnalogOut 0" + SrcPort 1 + DstBlock "Terminator" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 1" + SrcPort 1 + DstBlock "AnalogOut 1" + DstPort 1 + } + Line { + SrcBlock "AnalogOut 1" + SrcPort 1 + DstBlock "Terminator1" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 3" + SrcPort 2 + DstBlock "LP 1" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 4" + SrcPort 2 + DstBlock "LP 3" + DstPort 1 + } + Line { + SrcBlock "Ground" + SrcPort 1 + Points [10, 0] + Branch { + DstBlock "AnalogIn 0" + DstPort 1 + } + Branch { + Points [0, 75] + Branch { + DstBlock "AnalogIn 3" + DstPort 1 + } + Branch { + Points [0, 100] + DstBlock "AnalogIn 4" + DstPort 1 + } + } + } + Line { + SrcBlock "AnalogIn 3" + SrcPort 1 + DstBlock "Terminator2" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 4" + SrcPort 1 + DstBlock "Terminator3" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 2" + SrcPort 2 + DstBlock "LP 2" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 5" + SrcPort 2 + DstBlock "LP 4" + DstPort 1 + } + Line { + SrcBlock "Ground1" + SrcPort 1 + Points [10, 0] + Branch { + Points [0, 80] + Branch { + Points [0, 100] + DstBlock "AnalogIn 5" + DstPort 1 + } + Branch { + DstBlock "AnalogIn 2" + DstPort 1 + } + } + Branch { + DstBlock "AnalogIn 1" + DstPort 1 + } + } + Line { + SrcBlock "AnalogIn 2" + SrcPort 1 + DstBlock "Terminator4" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 5" + SrcPort 1 + DstBlock "Terminator5" + DstPort 1 + } + Line { + SrcBlock "u1" + SrcPort 1 + DstBlock "Mux" + DstPort 2 + } + Line { + SrcBlock "Mux" + SrcPort 1 + DstBlock "flow controller 1" + DstPort 1 + } + Line { + SrcBlock "flow controller 1" + SrcPort 1 + Points [30, 0] + DstBlock "AnalogOut 0" + DstPort 2 + } + Line { + SrcBlock "u2" + SrcPort 1 + DstBlock "Mux1" + DstPort 2 + } + Line { + SrcBlock "Mux1" + SrcPort 1 + DstBlock "flow controller 2" + DstPort 1 + } + Line { + SrcBlock "flow controller 2" + SrcPort 1 + Points [30, 0] + DstBlock "AnalogOut 1" + DstPort 2 + } + Line { + SrcBlock "AnalogIn 1" + SrcPort 2 + DstBlock "Mux1" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 0" + SrcPort 2 + DstBlock "Mux" + DstPort 1 + } + Line { + SrcBlock "LP 1" + SrcPort 1 + DstBlock "y1" + DstPort 1 + } + Line { + SrcBlock "LP 3" + SrcPort 1 + DstBlock "y3" + DstPort 1 + } + Line { + SrcBlock "LP 2" + SrcPort 1 + DstBlock "y2" + DstPort 1 + } + Line { + SrcBlock "LP 4" + SrcPort 1 + DstBlock "y4" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Real batch tank" + SID "637" + Ports [5, 3] + Position [280, 363, 370, 467] + ZOrder -1 + BackgroundColor "green" + AncestorBlock "tank/Real Quadtank" + LibraryVersion "*" + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + MaskPromptString "h" + MaskStyleString "edit" + MaskVariables "h=@1;" + MaskTunableValueString "on" + MaskEnableString "on" + MaskVisibilityString "on" + MaskToolTipString "on" + MaskIconFrame on + MaskIconOpaque on + MaskIconRotate "none" + MaskPortRotate "default" + MaskIconUnits "autoscale" + MaskValueString "0.05" + System { + Name "Real batch tank" + Location [71, 92, 1144, 834] + Open off + ModelBrowserVisibility off + ModelBrowserWidth 200 + ScreenColor "white" + PaperOrientation "landscape" + PaperPositionMode "auto" + PaperType "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "92" + Block { + BlockType Inport + Name "InPump" + SID "637:34" + Position [190, 193, 220, 207] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "OutPump" + SID "637:35" + Position [190, 293, 220, 307] + ZOrder -1 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "Heater" + SID "637:36" + Position [160, 533, 190, 547] + ZOrder -1 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "Mixer" + SID "637:37" + Position [160, 618, 190, 632] + ZOrder -1 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "Cooler" + SID "637:38" + Position [155, 688, 185, 702] + ZOrder -1 + Port "5" + IconDisplay "Port number" + } + Block { + BlockType S-Function + Name "AnalogIn 1" + SID "637:86" + Ports [1, 2] + Position [180, 772, 240, 803] + ZOrder -6 + FunctionName "analogin" + Parameters "h [30]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogIn 2" + SID "637:89" + Ports [1, 2] + Position [180, 827, 240, 858] + ZOrder -6 + FunctionName "analogin" + Parameters "h [37]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogIn 7" + SID "637:46" + Ports [1, 2] + Position [195, 357, 255, 388] + ZOrder -6 + FunctionName "analogin" + Parameters "h [31]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogOut1" + SID "637:48" + Ports [2, 1] + Position [265, 177, 325, 208] + ZOrder -9 + FunctionName "analogout" + Parameters "h [32]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogOut2" + SID "637:65" + Ports [2, 1] + Position [265, 267, 325, 298] + ZOrder -9 + FunctionName "analogout" + Parameters "h [33]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogOut3" + SID "637:77" + Ports [2, 1] + Position [240, 517, 300, 548] + ZOrder -9 + FunctionName "analogout" + Parameters "h [30]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogOut4" + SID "637:80" + Ports [2, 1] + Position [240, 602, 300, 633] + ZOrder -9 + FunctionName "analogout" + Parameters "h [34]" + EnableBusSupport off + } + Block { + BlockType S-Function + Name "AnalogOut5" + SID "637:83" + Ports [2, 1] + Position [240, 672, 300, 703] + ZOrder -9 + FunctionName "analogout" + Parameters "h [31]" + EnableBusSupport off + } + Block { + BlockType Ground + Name "LevelControlLoop" + SID "637:49" + Position [110, 175, 130, 195] + ZOrder -11 + } + Block { + BlockType S-Function + Name "S-Function2" + SID "637:19" + Ports [0, 1] + Position [110, 30, 170, 60] + ZOrder -19 + FunctionName "realtimer" + Parameters "h" + EnableBusSupport off + } + Block { + BlockType Scope + Name "Scope" + SID "637:20" + Ports [1] + Position [225, 29, 255, 61] + ZOrder -20 + Floating off + Location [48, 426, 372, 665] + Open off + NumInputPorts "1" + List { + ListType AxesTitles + axes1 "%<SignalLabel>" + } + List { + ListType ScopeGraphics + FigureColor "[0.5 0.5 0.5]" + AxesColor "[0 0 0]" + AxesTickColor "[1 1 1]" + 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.77556e-17" + YMax "0.45" + DataFormat "StructureWithTime" + SampleTime "0" + } + Block { + BlockType Ground + Name "TemperatureLoop" + SID "637:78" + Position [85, 515, 105, 535] + ZOrder -11 + } + Block { + BlockType Terminator + Name "Terminator1" + SID "637:79" + Position [325, 525, 345, 545] + ZOrder -21 + } + Block { + BlockType Terminator + Name "Terminator2" + SID "637:81" + Position [340, 610, 360, 630] + ZOrder -21 + } + Block { + BlockType Terminator + Name "Terminator3" + SID "637:84" + Position [340, 680, 360, 700] + ZOrder -21 + } + Block { + BlockType Terminator + Name "Terminator4" + SID "637:87" + Position [270, 770, 290, 790] + ZOrder -23 + } + Block { + BlockType Terminator + Name "Terminator5" + SID "637:90" + Position [270, 825, 290, 845] + ZOrder -23 + } + Block { + BlockType Terminator + Name "Terminator6" + SID "637:53" + Position [350, 185, 370, 205] + ZOrder -21 + } + Block { + BlockType Terminator + Name "Terminator7" + SID "637:54" + Position [285, 355, 305, 375] + ZOrder -23 + } + Block { + BlockType Terminator + Name "Terminator8" + SID "637:67" + Position [350, 275, 370, 295] + ZOrder -21 + } + Block { + BlockType Outport + Name "Temp" + SID "637:39" + Position [330, 788, 360, 802] + ZOrder -29 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "Level" + SID "637:40" + Position [345, 373, 375, 387] + ZOrder -29 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "TankTemp" + SID "637:41" + Position [330, 848, 360, 862] + ZOrder -29 + Port "3" + IconDisplay "Port number" + } + Line { + SrcBlock "S-Function2" + SrcPort 1 + DstBlock "Scope" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 7" + SrcPort 1 + DstBlock "Terminator7" + DstPort 1 + } + Line { + SrcBlock "LevelControlLoop" + SrcPort 1 + Points [40, 0] + Branch { + Points [0, 90] + Branch { + Points [0, 100] + DstBlock "AnalogIn 7" + DstPort 1 + } + Branch { + DstBlock "AnalogOut2" + DstPort 1 + } + } + Branch { + DstBlock "AnalogOut1" + DstPort 1 + } + } + Line { + SrcBlock "AnalogIn 7" + SrcPort 2 + DstBlock "Level" + DstPort 1 + } + Line { + SrcBlock "AnalogOut1" + SrcPort 1 + DstBlock "Terminator6" + DstPort 1 + } + Line { + SrcBlock "OutPump" + SrcPort 1 + Points [25, 0] + DstBlock "AnalogOut2" + DstPort 2 + } + Line { + SrcBlock "AnalogOut2" + SrcPort 1 + DstBlock "Terminator8" + DstPort 1 + } + Line { + SrcBlock "InPump" + SrcPort 1 + DstBlock "AnalogOut1" + DstPort 2 + } + Line { + SrcBlock "TemperatureLoop" + SrcPort 1 + Points [40, 0] + Branch { + Points [0, 85] + Branch { + DstBlock "AnalogOut4" + DstPort 1 + } + Branch { + Points [0, 70] + Branch { + DstBlock "AnalogOut5" + DstPort 1 + } + Branch { + Points [0, 110] + Branch { + DstBlock "AnalogIn 1" + DstPort 1 + } + Branch { + Points [0, 55] + DstBlock "AnalogIn 2" + DstPort 1 + } + } + } + } + Branch { + DstBlock "AnalogOut3" + DstPort 1 + } + } + Line { + SrcBlock "AnalogOut3" + SrcPort 1 + DstBlock "Terminator1" + DstPort 1 + } + Line { + SrcBlock "Heater" + SrcPort 1 + DstBlock "AnalogOut3" + DstPort 2 + } + Line { + SrcBlock "AnalogOut4" + SrcPort 1 + DstBlock "Terminator2" + DstPort 1 + } + Line { + SrcBlock "Mixer" + SrcPort 1 + DstBlock "AnalogOut4" + DstPort 2 + } + Line { + SrcBlock "AnalogOut5" + SrcPort 1 + DstBlock "Terminator3" + DstPort 1 + } + Line { + SrcBlock "Cooler" + SrcPort 1 + DstBlock "AnalogOut5" + DstPort 2 + } + Line { + SrcBlock "AnalogIn 1" + SrcPort 1 + DstBlock "Terminator4" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 1" + SrcPort 2 + DstBlock "Temp" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 2" + SrcPort 1 + DstBlock "Terminator5" + DstPort 1 + } + Line { + SrcBlock "AnalogIn 2" + SrcPort 2 + Points [0, 5] + DstBlock "TankTemp" + DstPort 1 + } + Annotation { + SID "637:62" + Position [891, 355] + } + } + } + Block { + BlockType SubSystem + Name "SOTD_example" + SID "320" + Ports [1, 1] + Position [100, 236, 180, 314] + 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 "321" + Position [20, 73, 50, 87] + ZOrder 106 + IconDisplay "Port number" + SampleTime "simopt.h" + } + Block { + BlockType TransferFcn + Name "Transfer Fcn" + SID "322" + Position [175, 62, 235, 98] + ZOrder 110 + Denominator "[1 4 6 4 1]" + } + Block { + BlockType Outport + Name "y" + SID "323" + Position [310, 73, 340, 87] + ZOrder 105 + IconDisplay "Port number" + SampleTime "simopt.h" + } + Line { + SrcBlock "Transfer Fcn" + SrcPort 1 + DstBlock "y" + DstPort 1 + } + Line { + SrcBlock "u" + SrcPort 1 + DstBlock "Transfer Fcn" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "WoodBerry" + SID "902" + Ports [2, 2] + Position [245, 240, 345, 315] + 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 "903" + Position [175, 103, 205, 117] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "u2" + SID "904" + Position [175, 313, 205, 327] + ZOrder 1 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType TransferFcn + Name "P11" + SID "944" + Position [275, 92, 335, 128] + ZOrder -9 + Numerator "[12.8]" + Denominator "[16.7 1]" + } + Block { + BlockType TransportDelay + Name "P11_d" + SID "945" + Ports [1, 1] + Position [365, 95, 395, 125] + ZOrder -10 + } + Block { + BlockType TransferFcn + Name "P12" + SID "947" + Position [275, 162, 335, 198] + ZOrder -9 + Numerator "[-18.9]" + Denominator "[21 1]" + } + Block { + BlockType TransportDelay + Name "P12_d" + SID "948" + Ports [1, 1] + Position [365, 165, 395, 195] + ZOrder -10 + DelayTime "3" + } + Block { + BlockType TransferFcn + Name "P21" + SID "949" + Position [275, 227, 335, 263] + ZOrder -9 + Numerator "[6.6]" + Denominator "[10.9 1]" + } + Block { + BlockType TransportDelay + Name "P21_d" + SID "950" + Ports [1, 1] + Position [365, 230, 395, 260] + ZOrder -10 + DelayTime "7" + } + Block { + BlockType TransferFcn + Name "P22" + SID "951" + Position [275, 302, 335, 338] + ZOrder -9 + Numerator "[-19.4]" + Denominator "[14.4 1]" + } + Block { + BlockType TransportDelay + Name "P22_d" + SID "952" + Ports [1, 1] + Position [365, 305, 395, 335] + ZOrder -10 + DelayTime "3" + } + Block { + BlockType Sum + Name "Sum" + SID "946" + 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 "954" + 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 "942" + Position [640, 103, 670, 117] + ZOrder -2 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "y2" + SID "943" + Position [640, 313, 670, 327] + ZOrder 4 + Port "2" + IconDisplay "Port number" + } + Line { + SrcBlock "P11" + SrcPort 1 + DstBlock "P11_d" + DstPort 1 + } + Line { + SrcBlock "P11_d" + SrcPort 1 + DstBlock "Sum" + DstPort 1 + } + Line { + SrcBlock "Sum" + SrcPort 1 + DstBlock "y1" + DstPort 1 + } + Line { + SrcBlock "u1" + SrcPort 1 + Points [5, 0] + Branch { + DstBlock "P11" + DstPort 1 + } + Branch { + Points [25, 0; 0, 135] + DstBlock "P21" + DstPort 1 + } + } + Line { + SrcBlock "P12" + SrcPort 1 + DstBlock "P12_d" + DstPort 1 + } + Line { + SrcBlock "P12_d" + SrcPort 1 + Points [75, 0] + DstBlock "Sum" + DstPort 2 + } + Line { + SrcBlock "u2" + SrcPort 1 + Points [10, 0] + Branch { + Points [0, 0; 0, -140] + DstBlock "P12" + DstPort 1 + } + Branch { + DstBlock "P22" + DstPort 1 + } + } + Line { + SrcBlock "P21" + SrcPort 1 + DstBlock "P21_d" + DstPort 1 + } + Line { + SrcBlock "P21_d" + SrcPort 1 + Points [75, 0] + DstBlock "Sum2" + DstPort 1 + } + Line { + SrcBlock "P22" + SrcPort 1 + DstBlock "P22_d" + DstPort 1 + } + Line { + SrcBlock "P22_d" + SrcPort 1 + DstBlock "Sum2" + DstPort 2 + } + Line { + SrcBlock "Sum2" + SrcPort 1 + DstBlock "y2" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "multi-NOMAD" + SID "860" + Ports [2, 2] + Position [340, 39, 440, 81] + ZOrder 158 + BackgroundColor "lightBlue" + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + System { + Name "multi-NOMAD" + Location [107, -23, 1149, 412] + 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 "e1" + SID "861" + Position [175, 103, 205, 117] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "e2" + SID "862" + Position [175, 193, 205, 207] + ZOrder 1 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType SubSystem + Name "Autotuner1" + SID "863" + 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, 306, 1992, 821] + 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 "e" + SID "864" + Position [30, 148, 60, 162] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "other_done" + SID "865" + Position [50, 438, 80, 452] + ZOrder -1 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Product + Name "AND" + SID "866" + 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 "867" + 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 "868" + Position [310, 265, 340, 295] + ZOrder 117 + Value "params.ustart" + SampleTime "simopt.h" + } + Block { + BlockType SubSystem + Name "Constraint" + SID "869" + 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 "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "29" + Block { + BlockType Inport + Name "time" + SID "869::23" + Position [20, 101, 40, 119] + ZOrder 9 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "all_done" + SID "869::24" + Position [20, 136, 40, 154] + ZOrder 10 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "timeAfterExp" + SID "869::26" + Position [20, 171, 40, 189] + ZOrder 11 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "869::28" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 13 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "869::27" + Tag "Stateflow S-Function ATlibrary_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 "869::29" + Position [460, 241, 480, 259] + ZOrder 14 + } + Block { + BlockType Outport + Name "stop" + SID "869::5" + Position [460, 101, 480, 119] + ZOrder -7 + IconDisplay "Port number" + } + Line { + SrcBlock "time" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + SrcBlock "all_done" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + SrcBlock "timeAfterExp" + SrcPort 1 + DstBlock " SFunction " + DstPort 3 + } + Line { + Name "stop" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "stop" + DstPort 1 + } + Line { + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + SrcBlock " SFunction " + SrcPort 1 + Points [20, 0] + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType DigitalClock + Name "Digital Clock" + SID "870" + Position [15, 203, 80, 227] + ZOrder -8 + SampleTime "simopt.h" + } + Block { + BlockType Constant + Name "Relay_parameters" + SID "871" + 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 "872" + Position [805, 377, 840, 413] + ZOrder -4 + } + Block { + BlockType Switch + Name "Switch" + SID "873" + Position [730, 175, 780, 215] + ZOrder 62 + Criteria "u2 ~= 0" + InputSameDT off + SaturateOnIntegerOverflow off + } + Block { + BlockType SubSystem + Name "relay_exp\n" + SID "874" + 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 "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "41" + Block { + BlockType Inport + Name "relay_par" + SID "874::36" + Position [20, 101, 40, 119] + ZOrder 21 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "e" + SID "874::23" + Position [20, 136, 40, 154] + ZOrder 9 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "t" + SID "874::28" + Position [20, 171, 40, 189] + ZOrder 14 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "u_ref" + SID "874::37" + Position [20, 206, 40, 224] + ZOrder 22 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "run_exp" + SID "874::31" + Position [20, 246, 40, 264] + ZOrder 17 + Port "5" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "874::40" + Ports [1, 1] + Position [270, 245, 320, 285] + ZOrder 25 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "874::39" + Tag "Stateflow S-Function ATlibrary_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 "874::41" + Position [460, 256, 480, 274] + ZOrder 26 + } + Block { + BlockType Outport + Name "result" + SID "874::38" + Position [460, 101, 480, 119] + ZOrder 23 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "u" + SID "874::27" + Position [460, 136, 480, 154] + ZOrder 13 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "done" + SID "874::32" + Position [460, 171, 480, 189] + ZOrder 18 + Port "3" + IconDisplay "Port number" + } + Line { + SrcBlock "relay_par" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + SrcBlock "e" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + SrcBlock "t" + SrcPort 1 + DstBlock " SFunction " + DstPort 3 + } + Line { + SrcBlock "u_ref" + SrcPort 1 + DstBlock " SFunction " + DstPort 4 + } + Line { + SrcBlock "run_exp" + SrcPort 1 + DstBlock " SFunction " + DstPort 5 + } + Line { + Name "result" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "result" + DstPort 1 + } + Line { + Name "u" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 3 + DstBlock "u" + DstPort 1 + } + Line { + Name "done" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 4 + DstBlock "done" + DstPort 1 + } + Line { + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType Constant + Name "timeAfterExp" + SID "875" + Position [585, 410, 615, 440] + ZOrder -4 + Value "params.timeAfterExp" + } + Block { + BlockType Outport + Name "u" + SID "876" + Position [835, 188, 865, 202] + ZOrder 4 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "done" + SID "877" + Position [830, 113, 860, 127] + ZOrder 4 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "result1" + SID "878" + Position [705, 38, 735, 52] + ZOrder 119 + Port "3" + IconDisplay "Port number" + } + Line { + SrcBlock "Switch" + SrcPort 1 + DstBlock "u" + DstPort 1 + } + Line { + SrcBlock "Relay_parameters" + SrcPort 1 + DstBlock "relay_exp\n" + DstPort 1 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 2 + Points [75, 0] + DstBlock "Switch" + DstPort 1 + } + Line { + SrcBlock "Compare\nTo Constant" + SrcPort 1 + Points [60, 0; 0, -19] + Branch { + Points [250, 0] + DstBlock "Switch" + DstPort 2 + } + Branch { + DstBlock "relay_exp\n" + DstPort 5 + } + } + Line { + SrcBlock "Constant" + SrcPort 1 + Points [90, 0] + Branch { + Points [0, -165] + DstBlock "relay_exp\n" + DstPort 4 + } + Branch { + Points [127, 0; 0, -70] + DstBlock "Switch" + DstPort 3 + } + } + Line { + SrcBlock "e" + SrcPort 1 + Points [142, 0; 0, -90] + DstBlock "relay_exp\n" + DstPort 2 + } + Line { + SrcBlock "Digital Clock" + SrcPort 1 + Points [30, 0] + Branch { + Points [205, 0] + Branch { + Points [0, -124] + DstBlock "relay_exp\n" + DstPort 3 + } + Branch { + DstBlock "Compare\nTo Constant" + DstPort 1 + } + } + Branch { + Points [0, 165] + DstBlock "Constraint" + DstPort 1 + } + } + Line { + SrcBlock "Constraint" + SrcPort 1 + DstBlock "Stop Simulation" + DstPort 1 + } + Line { + SrcBlock "AND" + SrcPort 1 + Points [14, 0; 0, -60] + DstBlock "Constraint" + DstPort 2 + } + Line { + SrcBlock "other_done" + SrcPort 1 + DstBlock "AND" + DstPort 1 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 3 + Points [0, 10; 18, 0] + Branch { + Points [0, 180; -556, 0; 0, 135] + DstBlock "AND" + DstPort 2 + } + Branch { + Points [157, 0] + DstBlock "done" + DstPort 1 + } + } + Line { + SrcBlock "timeAfterExp" + SrcPort 1 + Points [25, 0; 0, -15] + DstBlock "Constraint" + DstPort 3 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 1 + DstBlock "result1" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Autotuner2" + SID "879" + 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, 348, 1160, 1227] + 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 "80" + Block { + BlockType Inport + Name "e" + SID "880" + Position [30, 148, 60, 162] + ZOrder -1 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "other_done" + SID "881" + Position [35, 413, 65, 427] + ZOrder -1 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Product + Name "AND" + SID "882" + 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 "883" + 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 "884" + Position [315, 265, 345, 295] + ZOrder 119 + Value "params.ustart" + SampleTime "simopt.h" + } + Block { + BlockType SubSystem + Name "Constraint" + SID "885" + 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 "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "29" + Block { + BlockType Inport + Name "time" + SID "885::23" + Position [20, 101, 40, 119] + ZOrder 9 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "all_done" + SID "885::24" + Position [20, 136, 40, 154] + ZOrder 10 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "timeAfterExp" + SID "885::26" + Position [20, 171, 40, 189] + ZOrder 11 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "885::28" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 13 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "885::27" + Tag "Stateflow S-Function ATlibrary_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 "885::29" + Position [460, 241, 480, 259] + ZOrder 14 + } + Block { + BlockType Outport + Name "stop" + SID "885::5" + Position [460, 101, 480, 119] + ZOrder -7 + IconDisplay "Port number" + } + Line { + SrcBlock "time" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + SrcBlock "all_done" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + SrcBlock "timeAfterExp" + SrcPort 1 + DstBlock " SFunction " + DstPort 3 + } + Line { + Name "stop" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "stop" + DstPort 1 + } + Line { + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + SrcBlock " SFunction " + SrcPort 1 + Points [20, 0] + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType DigitalClock + Name "Digital Clock" + SID "886" + Position [15, 203, 80, 227] + ZOrder -8 + SampleTime "simopt.h" + } + Block { + BlockType Constant + Name "Relay_parameters" + SID "887" + 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 "888" + 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 "889" + Position [795, 362, 830, 398] + ZOrder -4 + } + Block { + BlockType Switch + Name "Switch" + SID "890" + Position [730, 175, 780, 215] + ZOrder 62 + Criteria "u2 ~= 0" + InputSameDT off + SaturateOnIntegerOverflow off + } + Block { + BlockType SubSystem + Name "relay_exp\n" + SID "891" + 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 "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "41" + Block { + BlockType Inport + Name "relay_par" + SID "891::36" + Position [20, 101, 40, 119] + ZOrder 21 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "e" + SID "891::23" + Position [20, 136, 40, 154] + ZOrder 9 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "t" + SID "891::28" + Position [20, 171, 40, 189] + ZOrder 14 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "u_ref" + SID "891::37" + Position [20, 206, 40, 224] + ZOrder 22 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "run_exp" + SID "891::31" + Position [20, 246, 40, 264] + ZOrder 17 + Port "5" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "891::40" + Ports [1, 1] + Position [270, 245, 320, 285] + ZOrder 25 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "891::39" + Tag "Stateflow S-Function ATlibrary_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 "891::41" + Position [460, 256, 480, 274] + ZOrder 26 + } + Block { + BlockType Outport + Name "result" + SID "891::38" + Position [460, 101, 480, 119] + ZOrder 23 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "u" + SID "891::27" + Position [460, 136, 480, 154] + ZOrder 13 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "done" + SID "891::32" + Position [460, 171, 480, 189] + ZOrder 18 + Port "3" + IconDisplay "Port number" + } + Line { + SrcBlock "relay_par" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + SrcBlock "e" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + SrcBlock "t" + SrcPort 1 + DstBlock " SFunction " + DstPort 3 + } + Line { + SrcBlock "u_ref" + SrcPort 1 + DstBlock " SFunction " + DstPort 4 + } + Line { + SrcBlock "run_exp" + SrcPort 1 + DstBlock " SFunction " + DstPort 5 + } + Line { + Name "result" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "result" + DstPort 1 + } + Line { + Name "u" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 3 + DstBlock "u" + DstPort 1 + } + Line { + Name "done" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 4 + DstBlock "done" + DstPort 1 + } + Line { + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType Constant + Name "timeAfterExp" + SID "892" + Position [545, 390, 575, 420] + ZOrder -4 + Value "params.timeAfterExp" + } + Block { + BlockType Outport + Name "u" + SID "893" + Position [835, 188, 865, 202] + ZOrder 4 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "done" + SID "894" + Position [830, 113, 860, 127] + ZOrder 4 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "result2" + SID "895" + Position [730, 38, 760, 52] + ZOrder 121 + Port "3" + IconDisplay "Port number" + } + Line { + SrcBlock "Switch" + SrcPort 1 + DstBlock "u" + DstPort 1 + } + Line { + SrcBlock "Relay_parameters" + SrcPort 1 + DstBlock "relay_exp\n" + DstPort 1 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 2 + Points [75, 0] + DstBlock "Switch" + DstPort 1 + } + Line { + SrcBlock "e" + SrcPort 1 + Points [147, 0; 0, -90] + DstBlock "relay_exp\n" + DstPort 2 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 1 + DstBlock "result2" + DstPort 1 + } + Line { + SrcBlock "Constraint" + SrcPort 1 + DstBlock "Stop Simulation" + DstPort 1 + } + Line { + SrcBlock "AND" + SrcPort 1 + Points [110, 0; 0, -50] + DstBlock "Constraint" + DstPort 2 + } + Line { + SrcBlock "other_done" + SrcPort 1 + DstBlock "AND" + DstPort 1 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 3 + Points [0, 0] + Branch { + Points [0, 160] + Branch { + DstBlock "Scope" + DstPort 1 + } + Branch { + Points [0, 176; -551, 0; 0, -36] + DstBlock "AND" + DstPort 2 + } + } + Branch { + Points [0, -15] + DstBlock "done" + DstPort 1 + } + } + Line { + SrcBlock "timeAfterExp" + SrcPort 1 + Points [28, 0; 0, -10] + DstBlock "Constraint" + DstPort 3 + } + Line { + SrcBlock "Compare\nTo Constant" + SrcPort 1 + Points [60, 0; 0, -19] + Branch { + Points [250, 0] + DstBlock "Switch" + DstPort 2 + } + Branch { + DstBlock "relay_exp\n" + DstPort 5 + } + } + Line { + SrcBlock "Constant" + SrcPort 1 + Points [83, 0] + Branch { + Points [0, -165] + DstBlock "relay_exp\n" + DstPort 4 + } + Branch { + Points [134, 0; 0, -70] + DstBlock "Switch" + DstPort 3 + } + } + Line { + SrcBlock "Digital Clock" + SrcPort 1 + Points [30, 0] + Branch { + Points [205, 0] + Branch { + Points [0, -124] + Branch { + DstBlock "relay_exp\n" + DstPort 3 + } + Branch { + Points [155, -1] + } + } + Branch { + DstBlock "Compare\nTo Constant" + DstPort 1 + } + } + Branch { + Points [0, 150] + DstBlock "Constraint" + DstPort 1 + } + } + } + } + Block { + BlockType SubSystem + Name "Logger" + SID "896" + 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 "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + Block { + BlockType Inport + Name "result" + SID "897" + Position [20, 43, 50, 57] + ZOrder 88 + IconDisplay "Port number" + SampleTime "simopt.h" + } + Block { + BlockType ToWorkspace + Name "Logger" + SID "898" + 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 "899" + Ports [2, 1] + Position [485, 141, 490, 179] + ZOrder 118 + ShowName off + Inputs "2" + DisplayOption "bar" + } + Block { + BlockType Outport + Name "u1" + SID "900" + Position [405, 103, 435, 117] + ZOrder -2 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "u2" + SID "901" + Position [405, 193, 435, 207] + ZOrder 4 + Port "2" + IconDisplay "Port number" + } + Line { + SrcBlock "Autotuner1" + SrcPort 2 + Points [10, 0; 0, 60; -120, 0] + DstBlock "Autotuner2" + DstPort 2 + } + Line { + SrcBlock "Autotuner2" + SrcPort 2 + Points [5, 0; 0, -50; -135, 0] + DstBlock "Autotuner1" + DstPort 2 + } + Line { + SrcBlock "Autotuner1" + SrcPort 1 + Points [9, 0; 0, 5] + DstBlock "u1" + DstPort 1 + } + Line { + SrcBlock "Autotuner2" + SrcPort 1 + Points [0, 5] + DstBlock "u2" + DstPort 1 + } + Line { + SrcBlock "e1" + SrcPort 1 + DstBlock "Autotuner1" + DstPort 1 + } + Line { + SrcBlock "e2" + SrcPort 1 + DstBlock "Autotuner2" + DstPort 1 + } + Line { + SrcBlock "Autotuner1" + SrcPort 3 + Points [73, 0; 0, 15] + DstBlock "Mux" + DstPort 1 + } + Line { + SrcBlock "Autotuner2" + SrcPort 3 + Points [100, 0; 0, -55] + DstBlock "Mux" + DstPort 2 + } + Line { + SrcBlock "Mux" + SrcPort 1 + DstBlock "Logger" + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "tau_tuner" + SID "824" + Ports [1, 1] + Position [100, 39, 170, 81] + ZOrder 157 + BackgroundColor "lightBlue" + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + System { + Name "tau_tuner" + Location [103, 95, 1243, 771] + 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 "e" + SID "825" + Position [30, 148, 60, 162] + ZOrder -1 + IconDisplay "Port number" + SampleTime "simopt.h" + } + Block { + BlockType Clock + Name "Clock" + SID "826" + Position [15, 205, 35, 225] + ZOrder 6 + } + Block { + BlockType Reference + Name "Compare\nTo Constant1" + SID "827" + Ports [1, 1] + Position [280, 283, 375, 317] + 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 "ConstU1" + SID "828" + Position [315, 345, 345, 375] + ZOrder 117 + Value "params.ustart" + SampleTime "simopt.h" + } + Block { + BlockType SubSystem + Name "Constraint" + SID "829" + Ports [2, 1] + Position [675, 562, 780, 613] + ZOrder -4 + LibraryVersion "1.32" + ErrorFcn "Stateflow.Translate.translate" + PermitHierarchicalResolution "ExplicitOnly" + TreatAsAtomicUnit on + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + 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('private/" + "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 "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "27" + Block { + BlockType Inport + Name "time" + SID "829::23" + Position [20, 101, 40, 119] + ZOrder 9 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "done" + SID "829::24" + Position [20, 136, 40, 154] + ZOrder 10 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "829::26" + Ports [1, 1] + Position [270, 230, 320, 270] + ZOrder 12 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "829::25" + Tag "Stateflow S-Function ATlibrary_2012a 5" + Ports [2, 2] + Position [180, 100, 230, 160] + ZOrder 11 + FunctionName "sf_sfun" + PortCounts "[2 2]" + EnableBusSupport on + Port { + PortNumber 2 + Name "stop" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + } + Block { + BlockType Terminator + Name " Terminator " + SID "829::27" + Position [460, 241, 480, 259] + ZOrder 13 + } + Block { + BlockType Outport + Name "stop" + SID "829::5" + Position [460, 101, 480, 119] + ZOrder -6 + IconDisplay "Port number" + } + Line { + SrcBlock "time" + SrcPort 1 + Points [120, 0] + DstBlock " SFunction " + DstPort 1 + } + Line { + SrcBlock "done" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + Name "stop" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + DstBlock "stop" + DstPort 1 + } + Line { + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType SubSystem + Name "Logger" + SID "830" + Ports [1] + Position [750, 21, 805, 59] + ZOrder 93 + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + RTWSystemCode "Auto" + FunctionWithSeparateData off + Opaque off + RequestExecContextInheritance off + MaskHideContents off + System { + Name "Logger" + Location [702, 184, 1771, 1063] + 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 "result" + SID "831" + Position [20, 43, 50, 57] + ZOrder 88 + IconDisplay "Port number" + SampleTime "simopt.h" + } + Block { + BlockType ToWorkspace + Name "Logger" + SID "832" + 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 "833" + Ports [4, 1] + Position [160, 101, 165, 139] + ZOrder 74 + ShowName off + DisplayOption "bar" + } + Block { + BlockType Constant + Name "PID_parameters" + SID "834" + Position [30, 315, 60, 345] + ZOrder -4 + Value "[params.h, params.equi] " + SampleTime "simopt.h" + } + Block { + BlockType Constant + Name "Relay_parameters" + SID "835" + Position [30, 25, 60, 55] + ZOrder -4 + Value "[params.eps, params.asym, params.h, 2,12,1, params.uon,params.hyst,params.noiseMeasureTime, 0]" + SampleTime "simopt.h" + } + Block { + BlockType Scope + Name "Scope" + SID "836" + Ports [1] + Position [795, 489, 825, 521] + ZOrder 54 + Floating off + Location [920, 503, 1505, 917] + 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 "-1.00000" + YMax "1.00000" + SaveName "ScopeData1" + DataFormat "StructureWithTime" + LimitDataPoints off + } + Block { + BlockType Scope + Name "Scope1" + SID "837" + Ports [1] + Position [815, 94, 845, 126] + ZOrder 70 + Floating off + Location [1145, 775, 1738, 1179] + 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 "-1.25" + YMax "11.25" + SaveName "ScopeData2" + DataFormat "StructureWithTime" + LimitDataPoints off + } + Block { + BlockType Scope + Name "Scope2" + SID "838" + Ports [1] + Position [520, 234, 550, 266] + ZOrder 71 + Floating off + Location [664, 616, 1265, 1010] + 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 "-3.218" + YMax "-3.205" + SaveName "ScopeData3" + DataFormat "StructureWithTime" + LimitDataPoints off + } + Block { + BlockType Stop + Name "Stop Simulation" + SID "839" + Position [835, 572, 870, 608] + ZOrder -4 + } + Block { + BlockType Switch + Name "Switch" + SID "840" + Position [760, 185, 810, 225] + ZOrder 62 + Criteria "u2 ~= 0" + InputSameDT off + SaturateOnIntegerOverflow off + } + Block { + BlockType ToWorkspace + Name "To Workspace1" + SID "841" + Ports [1] + Position [235, 145, 295, 175] + ZOrder 73 + VariableName "result1" + MaxDataPoints "50" + SampleTime "-1" + SaveFormat "Timeseries" + } + Block { + BlockType SubSystem + Name "relay_exp\n" + SID "842" + Ports [5, 4] + Position [480, 22, 635, 158] + ZOrder 3 + LibraryVersion "1.32" + ErrorFcn "Stateflow.Translate.translate" + PermitHierarchicalResolution "ExplicitOnly" + TreatAsAtomicUnit on + MinAlgLoopOccurrences off + PropExecContextOutsideSubsystem off + 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('private/" + "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 "usletter" + PaperUnits "inches" + TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000] + TiledPageScale 1 + ShowPageBoundaries off + ZoomFactor "100" + SIDHighWatermark "41" + Block { + BlockType Inport + Name "relay_par" + SID "842::36" + Position [20, 101, 40, 119] + ZOrder 21 + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "e" + SID "842::23" + Position [20, 136, 40, 154] + ZOrder 9 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "t" + SID "842::28" + Position [20, 171, 40, 189] + ZOrder 14 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "u_ref" + SID "842::37" + Position [20, 206, 40, 224] + ZOrder 22 + Port "4" + IconDisplay "Port number" + } + Block { + BlockType Inport + Name "run_exp" + SID "842::31" + Position [20, 246, 40, 264] + ZOrder 17 + Port "5" + IconDisplay "Port number" + } + Block { + BlockType Demux + Name " Demux " + SID "842::40" + Ports [1, 1] + Position [270, 280, 320, 320] + ZOrder 25 + Outputs "1" + } + Block { + BlockType S-Function + Name " SFunction " + SID "842::39" + Tag "Stateflow S-Function ATlibrary_2012a 6" + Ports [5, 5] + Position [180, 100, 230, 220] + ZOrder 24 + FunctionName "sf_sfun" + PortCounts "[5 5]" + EnableBusSupport on + Port { + PortNumber 2 + Name "result" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + Port { + PortNumber 3 + Name "u" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + Port { + PortNumber 4 + Name "PID_param" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + Port { + PortNumber 5 + Name "done" + RTWStorageClass "Auto" + DataLoggingNameMode "SignalName" + } + } + Block { + BlockType Terminator + Name " Terminator " + SID "842::41" + Position [460, 291, 480, 309] + ZOrder 26 + } + Block { + BlockType Outport + Name "result" + SID "842::38" + Position [460, 101, 480, 119] + ZOrder 23 + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "u" + SID "842::27" + Position [460, 136, 480, 154] + ZOrder 13 + Port "2" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "PID_param" + SID "842::34" + Position [460, 171, 480, 189] + ZOrder 20 + Port "3" + IconDisplay "Port number" + } + Block { + BlockType Outport + Name "done" + SID "842::32" + Position [460, 206, 480, 224] + ZOrder 18 + Port "4" + IconDisplay "Port number" + } + Line { + SrcBlock "relay_par" + SrcPort 1 + DstBlock " SFunction " + DstPort 1 + } + Line { + SrcBlock "e" + SrcPort 1 + DstBlock " SFunction " + DstPort 2 + } + Line { + SrcBlock "t" + SrcPort 1 + DstBlock " SFunction " + DstPort 3 + } + Line { + SrcBlock "u_ref" + SrcPort 1 + DstBlock " SFunction " + DstPort 4 + } + Line { + SrcBlock "run_exp" + SrcPort 1 + DstBlock " SFunction " + DstPort 5 + } + Line { + Name "result" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 2 + Points [0, -25] + DstBlock "result" + DstPort 1 + } + Line { + Name "u" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 3 + DstBlock "u" + DstPort 1 + } + Line { + Name "PID_param" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 4 + DstBlock "PID_param" + DstPort 1 + } + Line { + Name "done" + Labels [0, 0] + SrcBlock " SFunction " + SrcPort 5 + DstBlock "done" + DstPort 1 + } + Line { + SrcBlock " Demux " + SrcPort 1 + DstBlock " Terminator " + DstPort 1 + } + Line { + SrcBlock " SFunction " + SrcPort 1 + DstBlock " Demux " + DstPort 1 + } + } + } + Block { + BlockType Outport + Name "u" + SID "843" + Position [835, 198, 865, 212] + ZOrder 4 + IconDisplay "Port number" + SampleTime "simopt.h" + } + Line { + SrcBlock "Mux" + SrcPort 1 + Points [30, 0; 0, 40] + DstBlock "To Workspace1" + DstPort 1 + } + Line { + SrcBlock "Switch" + SrcPort 1 + DstBlock "u" + DstPort 1 + } + Line { + SrcBlock "e" + SrcPort 1 + Points [22, 0; 0, -90; 16, 0] + Branch { + DstBlock "relay_exp\n" + DstPort 2 + } + Branch { + Points [0, 50] + DstBlock "Mux" + DstPort 2 + } + } + Line { + SrcBlock "Relay_parameters" + SrcPort 1 + Points [73, 0] + Branch { + DstBlock "relay_exp\n" + DstPort 1 + } + Branch { + Points [0, 65] + DstBlock "Mux" + DstPort 1 + } + } + Line { + SrcBlock "PID_parameters" + SrcPort 1 + Points [31, 0; 0, -195] + DstBlock "Mux" + DstPort 4 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 2 + Points [78, 0; 0, 115] + DstBlock "Switch" + DstPort 1 + } + Line { + SrcBlock "Compare\nTo Constant1" + SrcPort 1 + Points [85, 0; 0, -45] + Branch { + Points [0, -5] + DstBlock "Scope2" + DstPort 1 + } + Branch { + Points [0, -50] + Branch { + DstBlock "relay_exp\n" + DstPort 5 + } + Branch { + DstBlock "Switch" + DstPort 2 + } + } + } + Line { + SrcBlock "ConstU1" + SrcPort 1 + Points [45, 0; 0, -25; 20, 0] + Branch { + Points [0, -220] + DstBlock "relay_exp\n" + DstPort 4 + } + Branch { + Points [305, 0; 0, -115] + DstBlock "Switch" + DstPort 3 + } + } + Line { + SrcBlock "relay_exp\n" + SrcPort 4 + Points [14, 0; 1, 271; -265, -1; 0, 185; 215, 0] + Branch { + DstBlock "Constraint" + DstPort 2 + } + Branch { + Points [0, -95] + DstBlock "Scope" + DstPort 1 + } + } + Line { + SrcBlock "Clock" + SrcPort 1 + Points [75, 0] + Branch { + Points [20, 0] + Branch { + Points [100, 0] + Branch { + Points [0, 85] + DstBlock "Compare\nTo Constant1" + DstPort 1 + } + Branch { + Points [85, 0; 0, -124] + DstBlock "relay_exp\n" + DstPort 3 + } + } + Branch { + Points [0, -90] + DstBlock "Mux" + DstPort 3 + } + } + Branch { + Points [0, 360] + DstBlock "Constraint" + DstPort 1 + } + } + Line { + SrcBlock "relay_exp\n" + SrcPort 3 + DstBlock "Scope1" + DstPort 1 + } + Line { + SrcBlock "relay_exp\n" + SrcPort 1 + DstBlock "Logger" + DstPort 1 + } + Line { + SrcBlock "Constraint" + SrcPort 1 + DstBlock "Stop Simulation" + DstPort 1 + } + } + } + } +} +# Finite State Machines +# +# Stateflow Version 7.6 (R2011b) dated Jan 25 2012, 13:50:40 +# +# + + +Stateflow { + machine { + id 1 + name "ATlibrary_2012a" + created "26-Apr-2017 11:16:05" + isLibrary 0 + firstTarget 79 + sfVersion 76014001.00040001 + } + chart { + id 2 + name "NOMAD/relay_exp\n" + windowPosition [404.686 -55 429 739.2] + viewLimits [0 319.2 0 430.6] + screen [1 1 1280 1024 1.25] + treeNode [0 3 0 0] + firstTransition 5 + firstJunction 4 + viewObj 2 + machine 1 + ssIdHighWaterMark 21 + decomposition CLUSTER_CHART + type EML_CHART + firstData 6 + chartFileNumber 1 + disableImplicitCasting 1 + eml { + name "relay_function" + } + } + 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 [result, u] = relay_function(relay_par, e, u0, run_exp)\n\n%%%%%%%%%% Definitions and de" + "fault values %%%%%%%%%%%%%%\ny=-e;\n% Relay parameters, values from workspace.\npersistent d1 d2 u_on u_off h\ng" + "amma = relay_par(1);\nt_sample = relay_par(2);\nbigYup = relay_par(3);\nrelayMaxDev = relay_par(4);\ndef_h = rel" + "ay_par(5);\nnoiseMeasureTime = relay_par(6);\n\npersistent yref uref\nif isempty(d2)\n h=def_h;\n % These " + "values are re-assigned later in the program so they won't be\n % used. But they are assigned in an if-stateme" + "nt so the program doesn't\n % understand that they will always be assigned before they are used.\n d1 = ga" + "mma;\n d2 = 1;\n u_on = d1;\n u_off = -d2;\n uref = u0;\n yref = 0;\nend\n\npersistent u_old sta" + "rtup Ksign\nif isempty(u_old)\n u_old = uref;\n Ksign = 1; % Will be re-assigned during the startup phase\n" + "end\n\npersistent sample\nif isempty(sample)\n sample = 0;\nend\n\n\n%%%%%%%%% Startup params %%%%%%%%%%%\np" + "ersistent a b c tff exp_t yh yl measureNoise first\nif isempty(startup)\n tff = 1/t_sample; % Usually 5 but t" + "o not make the startup phase a too large part of the id data in the ETFA paper we decreased it! Want the ramp-up" + " to be a certain time, according to Tore about 3-5s \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;\nend\n%%%%%%%%%%%%%%%%%%%%%" + "%%%%%%%%%%%%%%%%%%%%%%%%%\n\nif run_exp == 0\n u = 0;\n result = [0 0 0];\n return\nend\n\n\n%%%%%%%%%%" + "%%% Program running %%%%%%%%%%%%%%%%%\n\nsample = sample+1;\nif sample > 1\nend\n\n% %%%%%%%%% Startup %%%%%%%%%" + "%%%\n if measureNoise == 1\n if first \n uref = u0;\n yref = y;\n first = false;\n " + " yh = yref;\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 " + "h = max(2*noise, def_h);\n measureNoise = 0;\n startup = 1;\n end\n elseif startup == 1\n ex" + "p_t = sample-noiseMeasureTime/t_sample;\n a = uref-c;\n u = (a+c*b^(exp_t/tff));\n if abs(u) > " + "relayMaxDev+uref\n u = (relayMaxDev+uref);\n end\n if exp_t > 1\n ydev = y-y" + "ref; \n if abs(ydev) > h % reached outside hysteresis, stop and decide Ksign\n Ksign =" + " ydev/abs(ydev)\n if bigYup == 1\n %d1 = min(relayMaxDev, gamma*abs(u-uref));\n" + " d1 = min(relayMaxDev, abs(u-uref)); %could be a problem to have the large/small this way but" + " prefer it. \n d2 = d1/gamma;\n else\n %d2 = min(relayMaxDe" + "v, gamma*abs(u-uref));\n d2 = min(relayMaxDev, abs(u-uref));\n d1 = d2/gam" + "ma;\n end\n startup = 0;\n u_on = uref+Ksign*d1;\n u" + "_off = uref-Ksign*d2;\n if Ksign > 0\n u = u_off;\n else\n " + " u = u_on;\n end\n elseif exp_t > tff\n u = uref+relayMax" + "Dev;\n end\n end\n else\n %%%%%% Update amplitudes %%%%%%%\n u_on = uref+Ksign*d1;\n " + "u_off = uref-Ksign*d2;\n %%%%%% Calculate new u %%%%%%%%%\n if y <= yref-h\n u = u_on;\n elseif " + "y < yref+h && y > yref-h\n u = u_old;\n else u = u_off;\n end\n end\n%%%% store data %%%%%%\nu_old " + "= u;\nresult = [yref, uref, h];\n\n\n\n\n\n\n" + 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 100.8 18.448] + 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 19 + name "result" + linkNode [2 0 7] + 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 7 + ssIdNumber 18 + name "relay_par" + 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 8 + name "u" + linkNode [2 7 9] + 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 9 + ssIdNumber 5 + name "e" + linkNode [2 8 10] + 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 10 + ssIdNumber 21 + name "u0" + linkNode [2 9 11] + 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 11 + ssIdNumber 20 + name "run_exp" + linkNode [2 10 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 12 + name "NOMAD/relay_exp\n" + machine 1 + chart 2 + } + chart { + id 13 + name "tau_tuner/Constraint" + windowPosition [492.889 250.2 211 434] + viewLimits [0 156.75 0 153.75] + screen [1 1 1280 1024 1.25] + treeNode [0 14 0 0] + firstTransition 16 + firstJunction 15 + viewObj 13 + machine 1 + ssIdHighWaterMark 7 + decomposition CLUSTER_CHART + type EML_CHART + firstData 17 + chartFileNumber 5 + disableImplicitCasting 1 + eml { + name "Constraint" + } + } + state { + id 14 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 13 + treeNode [13 0 0 0] + superState SUBCHART + subviewer 13 + ssIdNumber 1 + type FUNC_STATE + decomposition CLUSTER_STATE + eml { + isEML 1 + script "%function stop = Constraint(tstop, time, done)\nfunction stop = Constraint(time, done)\n%#codegen" + "\npersistent tstopp\nif isempty(tstopp)\n tstopp = 10000;\nend\nif done == 1\n tstopp = time;\nend\nif tim" + "e > tstopp; %+params.timeAfterExp;\n stop = 1;\nelse\n stop = 0;\nend" + editorLayout "100 M4x1[10 5 700 500]" + } + } + junction { + id 15 + position [23.5747 49.5747 7] + chart 13 + linkNode [13 0 0] + subviewer 13 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 16 + 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 15 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 13 + linkNode [13 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 13 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } + data { + id 17 + ssIdNumber 5 + name "stop" + linkNode [13 0 18] + 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 18 + ssIdNumber 6 + name "time" + linkNode [13 17 19] + 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 19 + ssIdNumber 7 + name "done" + linkNode [13 18 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 20 + name "tau_tuner/Constraint" + machine 1 + chart 13 + } + chart { + id 21 + name "tau_tuner/relay_exp\n" + windowPosition [535.556 -55 429 739.2] + viewLimits [0 319.2 0 430.6] + screen [1 1 1280 1024 1.25] + treeNode [0 22 0 0] + firstTransition 24 + firstJunction 23 + viewObj 21 + machine 1 + ssIdHighWaterMark 17 + decomposition CLUSTER_CHART + type EML_CHART + firstData 25 + updateMethod DISCRETE + sampleTime "simopt.h" + chartFileNumber 6 + disableImplicitCasting 1 + eml { + name "relay_exp" + } + } + state { + id 22 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 21 + treeNode [21 0 0 0] + superState SUBCHART + subviewer 21 + ssIdNumber 1 + type FUNC_STATE + decomposition CLUSTER_STATE + eml { + isEML 1 + script "function [result, u, PID_param, 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 d" + "1 d2 u_on u_off h\nepsilon = relay_par(1);\ngamma = relay_par(2); \nt_sample = relay_par(3);\nlow_limit_f = rela" + "y_par(4);\nupp_limit_f = relay_par(5);\nbigYup = relay_par(6);\nrelayMaxDev = relay_par(7);\ndef_h = relay_par(8" + ");\nnoiseMeasureTime = relay_par(9);\nfixAmp = relay_par(10);\n\npersistent yref uref resultvec\nif isempty(d2)\n" + " h=def_h;\n % These values are assigned to their values later in the code, but in an if-statement\n % s" + "o the program doesn't understand that they will always be assigned. \n d1 = gamma;\n d2 = 1;\n u_on = " + "d1;\n u_off = -d2;\n uref = 0;\n yref = y;\n resultvec = zeros(22,1);\nend\n\n% Creating arrays for " + "data logging\nmaxlength = 1000000;\npersistent uvec yvec tvec \nif isempty(uvec)\n uvec = zeros(1,maxlength);" + "\n yvec = zeros(1,maxlength);\n tvec = zeros(1,maxlength);\nend\n\npersistent sample\nif isempty(sample)\n" + " sample = 0;\nend\n\npersistent startup Ksign startup_switch amp_changed\nif isempty(Ksign)\n Ksign = 1; %" + " Is found and assigned during the startup phase\n startup_switch = 0; \n amp_changed = 0;\nend\n\npersiste" + "nt param \nif isempty(param)\n param = [1, 10, 0]; % Should be an input somehow if an existing PID controller" + " is used first\nend\nPID_param = param; % Not allowed to have a persistent variable as output so had to do like " + "this\ndone = 0;\nfinished = false;\n\n% To handle switches\npersistent switching_times switch_index last_switch_" + "sample\nif isempty(switching_times)\n switching_times = zeros(1,100); % Larger than necessary\n switch_ind" + "ex = 1;\n last_switch_sample = 1;\nend\n\n%%%%%%%%% Startup params %%%%%%%%%%%\npersistent a b c ttf exp_t y" + "h yl measureNoise first\nif isempty(startup)\n uvec(1) = uref;\n yvec(1) = yref;\n tvec(1) = 0;\n tt" + "f = 5/t_sample; % Want to run the exponential growth for a certain time, not a number of samples. According to T" + "ore about 3-5s \n b = 40;\n c = relayMaxDev/(b-1);\n a = uvec(1)-c;\n measureNoise = 1;\n startup" + " = 0;\n yh = 0;\n yl = 0;\n first = true;\nend\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\nresu" + "lt = resultvec;\nif run_exp == 0\n done = 0;\n u = 0;\n PID_param = param;\n return\nend\nif fixAmp " + "== 1\n d1 = upp_limit_f;\n d2 = low_limit_f;\nend\n%%%%%%%%%%%%% Program running %%%%%%%%%%%%%%%%%\nsample =" + " sample+1;\nif sample > 1\n yvec(sample-1) = y; % store inputs\n tvec(sample) = t;\nend\n\n%%%%%%%%% Startup %" + "%%%%%%%%%%%\nif measureNoise == 1\n if first \n uref = u_ref;\n yref = y;\n first = fals" + "e;\n yh = yref;\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 resultvec(13) = yh;\n resultvec(14) = " + "yl;\n noise = (yh-yl)/2;\n yref = (yh+yl)/2;\n resultvec(15) = yref;\n resultvec(16)" + " = uref;\n h = max(2*noise, def_h);\n resultvec(12) = h;\n measureNoise = 0;\n start" + "up = 1;\n end\nelseif startup == 1\n exp_t = sample-noiseMeasureTime/t_sample; % this should be zero the f" + "irst sample\n a = uref-c;\n u = a+c*b^(exp_t/ttf);\n if u > relayMaxDev+uref\n u = r" + "elayMaxDev+uref;\n end\n if exp_t > 1\n ydev = y-yref; \n if abs(ydev) > h %" + " when reached outside hysteresis, stop and decide Ksign\n Ksign = ydev/abs(ydev)\n " + " if bigYup == 1\n d1 = min(relayMaxDev, gamma*abs(u-uref));\n d2 = d1/gamm" + "a;\n else\n d2 = min(relayMaxDev, gamma*abs(u-uref));\n d1 " + "= d2/gamma;\n end\n startup = 0;\n startup_switch = 1; % To not imm" + "ediately change the new amplitude.\n elseif exp_t > ttf\n u = uref+relayMaxDev;\n " + " end\n end\nelseif done == 0\n %%%%%% Update amplitudes %%%%%%%\n u_on = uref+Ksign*d1;\n " + "u_off = uref-Ksign*d2;\n %%%%%% Calculate new u %%%%%%%%%\n u = rel_func(y,uvec(sample-1),u_on, u_off,yref" + ",h);\nelse \n u = 0; % If the experiment aren't running no control signal should be calculated here\n % Th" + "is script shouldn't be running in those cases but somehow it seems\n % to do.\nend\n%%%% store data %%%%%%\nu" + "vec(sample) = u;\n\n%%%%%%% At switching points %%%%%%%\nif sample>1 && (uvec(sample)-uref)*(uvec(sample-1)-uref" + ") < 0\n switching_times(switch_index) = tvec(sample);\n low_limit = low_limit_f*h;\n upp_limit = upp_li" + "mit_f*h;\n ratio = check_amplitudes(yvec(last_switch_sample:sample-1)-yref, upp_limit, low_limit, gamma);\n " + " if fixAmp == 1\n ratio = 1;\n end\n if amp_changed == 1 % To not change two consecutive half peri" + "ods...\n ratio = 1;\n amp_changed = 0;\n end\n if (ratio > 1.01 || ratio < 0.99) && startup_" + "switch ~= 1 \n if max(d1,d2)*ratio > relayMaxDev\n if max(d1,d2) == relayMaxDev\n " + " ratio_forced = 1\n %ratio = 1;\n else\n ratio = relayMaxDev/max(d1,d" + "2);\n d1 = d1*ratio;\n d2 = d2*ratio;\n switch_index = 0; % to rese" + "t convergence checks if changed amplitude.\n amp_changed = 1;\n end\n \n " + " else\n d1 = d1*ratio;\n d2 = d2*ratio;\n switch_index = 0; % To reset conve" + "rgence checks if changed amplitude.\n amp_changed = 1;\n end\n if uvec(sample) == u_on\n " + " u = uref+Ksign*d1;\n elseif uvec(sample) == u_off\n u = uref-Ksign*d2;\n else\n " + " error = 1\n end\n uvec(sample) = u;\n end\n startup_switch = 0;\n if switch_index" + " > 3\n tp = switching_times(switch_index)-switching_times(switch_index-2);\n tp_old = switching_ti" + "mes(switch_index-1)-switching_times(switch_index-3);\n resultvec(19) = tp;\n resultvec(20) = tp_ol" + "d;\n if abs(tp-tp_old)<tp_old*epsilon\n finished = true;\n tstop = tvec(sample);\n " + " resultvec(17) = tstop;\n end\n end\n last_switch_sample = sample;\n switch_index = sw" + "itch_index+1;\nend\n\n\n% Checks if converged, in that case collect info and call a method that\n% calculates a " + "model and PI/PID parameters\nif finished == true\n tsim = tvec(1:sample);\n usim = uvec(1:sample)-uref;\n " + " ysim = yvec(1:sample)-yref;\n u1 = usim(1:end-1);\n u2 = usim(2:end);\n switches = find(" + "u1.*u2<0);\n yp = ysim(switches(end-2):switches(end));\n up = usim(switches(end-2):switches(end));" + "\n tp = tsim(switches(end-2):switches(end));\n y_int = trapz(tp,yp);\n u_int = trapz(tp,up)" + ";\n resultvec(21) = y_int;\n resultvec(22) = u_int;\n [ton toff] = calc_ton_toff(usim, switchin" + "g_times(1:switch_index-1), u_on-uref);\n resultvec(8) = ton;\n resultvec(9) = toff;\n %%%%% Calulating " + "tau %%%%%\n rho = max(ton, toff)/min(ton, toff);\n tau = min(1, max((gamma-rho)/((gamma-1)*(0.35*rho+0.65)" + "),0)) %Min&max if something strange would occur.\n resultvec(1) = tau;\n \n if tau > 0.1 % this condition" + " needs to be considered more closely\n [K,T,L] = calc_FOTD_params(u_int,y_int,d1,d2,h,ton,toff,tau);\n " + " if tau > 0.6\n [Kc, Ti, Td] = calc_AMIGO_PI(K,T,L);\n else\n [Kc, Ti, Td] = cal" + "c_AMIGO_PID(K,T,L);\n end\n resultvec(2) = K;\n resultvec(3) = T;\n resultvec(4) = L" + ";\n resultvec(5) = Kc;\n resultvec(6) = Ti;\n resultvec(7) = Td;\n else\n [kv, L]" + " = calc_integrating_params(y_int, u_on-uref, u_off-uref, ton, toff, h);\n %[Kc, Ti, Td] = calc_AMIGO_int_" + "PI(kv, L);\n [Kc, Ti, Td] = calc_AMIGO_int_PID(kv, L); % Which one do I want?\n resultvec(2) = kv;" + "\n resultvec(3) = -1;\n resultvec(4) = L;\n resultvec(5) = Kc;\n resultvec(6) = Ti;\n" + " resultvec(7) = Td;\n end\n done = 1;\n param = [Kc, Ti, Td];\n resultvec(10) = d1;\n resu" + "ltvec(11) = d2;\n resultvec(18) = done;\n resultvec\nend\nend\n\n\n% ---------------------------------\n f" + "unction ratio = check_amplitudes(y, upper_limit, lower_limit, gamma)\n % Is checked at every switching po" + "int and sends in y = y_vec-yref\n % for the entire half period. No point to check at other time\n " + "% instances!\n ratio1 = max(abs(y))/upper_limit; % Top value deviates too much if > 1\n ratio2 = m" + "ax(abs(y))/lower_limit; % Top value too close to hysteresis limit if < 1.\n \n if ratio1 > 1\n " + " ratio = (upper_limit+lower_limit*gamma)/(2*max(abs(y))); \n elseif ratio2 < 1\n ratio = (" + "lower_limit+upper_limit/gamma)/(2*max(abs(y)));\n else\n ratio =1;\n end\n end\n%---" + "------------------------------------\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% ---------------------" + "-----------\nfunction [ton, toff] = calc_ton_toff(u, switching_times, u_on)\n\nif u(end-1) == u_on\n ton = sw" + "itching_times(end)-switching_times(end-1);\n toff = switching_times(end-1)-switching_times(end-2);\nelse\n " + " toff = switching_times(end)-switching_times(end-1);\n ton = switching_times(end-1)-switching_times(end-2);\n" + "end\nend\n\n% ---------------------------------------------------\n\nfunction [kstart tstart lstart] = calc_FOTD" + "_params(u_int,y_int,d1,d2,h, ton, toff, tau)\nkstart=y_int/u_int;\nLdivT = tau/(1-tau);\n% Equations from commit" + " 2015-02-10\nu_int\ny_int\nd1\nd2\nh\nton\ntoff\ntau\ntstart1 = ton/log((h/abs(kstart)-d2+exp(LdivT)*(d1+d2))/(d" + "1-h/abs(kstart)));\ntstart2 = toff/log((h/abs(kstart)-d1+exp(LdivT)*(d1+d2))/(d2-h/abs(kstart)));\ntstart = (tst" + "art1+tstart2)/2;\nlstart = tstart*LdivT;\nend\n\n% --------------------------------------------\n\nfunction [K, " + "Ti, Td] = calc_AMIGO_PI(Kp,T,L)\nK = 0.15/Kp+(0.35-L*T/(L+T)^2)*T/(Kp*L);\nTi = 0.35*L+13*L*T^2/(T^2+12*L*T+7*L^" + "2);\nTd = 0;\nend\n\nfunction [K, Ti, Td] = calc_AMIGO_PID(Kp,T,L)\nK = (0.2*L+0.45*T)/(Kp*L);\nTi = (0.4*L+0.8*" + "T)/(L+0.1*T)*L;\nTd = 0.5*L*T/(0.3*L+T);\nend\n\n% --------------------------------------------\nfunction [kv, L" + "] = calc_integrating_params(y_int, uon, uoff, ton, toff, h)\n%Equations from commit 2015-02-10\ny_int\nuon\nuoff" + "\nton\ntoff\nh\n\nkv = 2*y_int/(ton*toff*(uon+uoff))+2*h/(uon*ton);\nL = (uon*ton-2*h/kv)/(uon-uoff);\nif L < 0\n" + " L = 1e-3;\nend\nend\n\n% -------------------------------------------\nfunction [K, Ti, Td] = calc_AMIGO_int_" + "PI(Kv, L)\nK = 0.35/(Kv*L);\nTi = 13.4*L;\nTd = 0;\nend\n\nfunction [K, Ti, Td] = calc_AMIGO_int_PID(Kv, L)\nK =" + " 0.45/(Kv*L);\nTi = 8*L;\nTd = 0.5*L;\nend" + editorLayout "100 M4x1[10 5 700 500]" + } + } + junction { + id 23 + position [23.5747 49.5747 7] + chart 21 + linkNode [21 0 0] + subviewer 21 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 24 + 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 23 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 21 + linkNode [21 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 21 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } + data { + id 25 + ssIdNumber 16 + name "result" + linkNode [21 0 26] + 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 26 + ssIdNumber 8 + name "u" + linkNode [21 25 27] + 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 27 + ssIdNumber 12 + name "PID_param" + linkNode [21 26 28] + 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 28 + ssIdNumber 14 + name "relay_par" + linkNode [21 27 29] + 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 29 + ssIdNumber 5 + name "e" + linkNode [21 28 30] + 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 30 + ssIdNumber 9 + name "t" + linkNode [21 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 15 + name "u_ref" + linkNode [21 30 32] + 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 32 + ssIdNumber 11 + name "run_exp" + linkNode [21 31 33] + 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 33 + ssIdNumber 4 + name "done" + linkNode [21 32 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 34 + name "tau_tuner/relay_exp\n" + machine 1 + chart 21 + } + chart { + id 35 + name "multi-NOMAD/Autotuner1/Constraint" + windowPosition [316.86 310.2 211 434] + viewLimits [0 156.75 0 153.75] + screen [1 1 1280 1024 1.25] + treeNode [0 36 0 0] + firstTransition 38 + firstJunction 37 + viewObj 35 + machine 1 + ssIdHighWaterMark 9 + decomposition CLUSTER_CHART + type EML_CHART + firstData 39 + chartFileNumber 7 + disableImplicitCasting 1 + eml { + name "Constraint" + } + } + state { + id 36 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 35 + treeNode [35 0 0 0] + superState SUBCHART + subviewer 35 + ssIdNumber 1 + type FUNC_STATE + decomposition CLUSTER_STATE + eml { + isEML 1 + script "%function 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 37 + position [23.5747 49.5747 7] + chart 35 + linkNode [35 0 0] + subviewer 35 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 38 + 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 37 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 35 + linkNode [35 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 35 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } + data { + id 39 + ssIdNumber 5 + name "stop" + linkNode [35 0 40] + 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 40 + ssIdNumber 6 + name "time" + linkNode [35 39 41] + 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 41 + ssIdNumber 7 + name "all_done" + linkNode [35 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 9 + name "timeAfterExp" + linkNode [35 41 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 43 + name "multi-NOMAD/Autotuner1/Constraint" + machine 1 + chart 35 + } + chart { + id 44 + name "multi-NOMAD/Autotuner1/relay_exp\n" + windowPosition [344.686 5 429 739.2] + viewLimits [0 319.2 0 430.6] + screen [1 1 1280 1024 1.25] + treeNode [0 45 0 0] + firstTransition 47 + firstJunction 46 + viewObj 44 + machine 1 + ssIdHighWaterMark 17 + decomposition CLUSTER_CHART + type EML_CHART + firstData 48 + chartFileNumber 8 + disableImplicitCasting 1 + eml { + name "relay_exp" + } + } + state { + id 45 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 44 + treeNode [44 0 0 0] + superState SUBCHART + subviewer 44 + 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 46 + position [23.5747 49.5747 7] + chart 44 + linkNode [44 0 0] + subviewer 44 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 47 + 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 46 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 44 + linkNode [44 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 44 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } + data { + id 48 + ssIdNumber 16 + name "result" + linkNode [44 0 49] + 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 49 + ssIdNumber 8 + name "u" + linkNode [44 48 50] + 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 50 + ssIdNumber 14 + name "relay_par" + linkNode [44 49 51] + 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 51 + ssIdNumber 5 + name "e" + linkNode [44 50 52] + 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 52 + ssIdNumber 9 + name "t" + linkNode [44 51 53] + 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 53 + ssIdNumber 15 + name "u_ref" + linkNode [44 52 54] + 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 54 + ssIdNumber 11 + name "run_exp" + linkNode [44 53 55] + 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 55 + ssIdNumber 4 + name "done" + linkNode [44 54 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 56 + name "multi-NOMAD/Autotuner1/relay_exp\n" + machine 1 + chart 44 + } + chart { + id 57 + name "multi-NOMAD/Autotuner2/Constraint" + windowPosition [316.86 310.2 211 434] + viewLimits [0 156.75 0 153.75] + screen [1 1 1280 1024 1.25] + treeNode [0 58 0 0] + firstTransition 60 + firstJunction 59 + viewObj 57 + machine 1 + toolbarMode LIBRARY_TOOLBAR + ssIdHighWaterMark 9 + decomposition CLUSTER_CHART + type EML_CHART + firstData 61 + chartFileNumber 9 + disableImplicitCasting 1 + eml { + name "Constraint" + } + } + state { + id 58 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 57 + treeNode [57 0 0 0] + superState SUBCHART + subviewer 57 + 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 59 + position [23.5747 49.5747 7] + chart 57 + linkNode [57 0 0] + subviewer 57 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 60 + 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 59 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 57 + linkNode [57 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 57 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } + data { + id 61 + ssIdNumber 5 + name "stop" + linkNode [57 0 62] + 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 62 + ssIdNumber 6 + name "time" + linkNode [57 61 63] + 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 63 + ssIdNumber 7 + name "all_done" + linkNode [57 62 64] + 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 64 + ssIdNumber 9 + name "timeAfterExp" + linkNode [57 63 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 65 + name "multi-NOMAD/Autotuner2/Constraint" + machine 1 + chart 57 + } + chart { + id 66 + name "multi-NOMAD/Autotuner2/relay_exp\n" + windowPosition [344.686 5 429 739.2] + viewLimits [0 319.2 0 430.6] + screen [1 1 1280 1024 1.25] + treeNode [0 67 0 0] + firstTransition 69 + firstJunction 68 + viewObj 66 + machine 1 + ssIdHighWaterMark 17 + decomposition CLUSTER_CHART + type EML_CHART + firstData 70 + chartFileNumber 10 + disableImplicitCasting 1 + eml { + name "relay_exp" + } + } + state { + id 67 + labelString "eML_blk_kernel()" + position [18 64.5 118 66] + fontSize 12 + chart 66 + treeNode [66 0 0 0] + superState SUBCHART + subviewer 66 + 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 68 + position [23.5747 49.5747 7] + chart 66 + linkNode [66 0 0] + subviewer 66 + ssIdNumber 3 + type CONNECTIVE_JUNCTION + } + transition { + id 69 + 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 68 + intersection [1 0 -1 0 23.5747 42.5747 0 0] + } + midPoint [23.5747 24.9468] + chart 66 + linkNode [66 0 0] + dataLimits [23.575 23.575 14.625 34.575] + subviewer 66 + drawStyle SMART + slide { + sticky BOTH_STICK + } + executionOrder 1 + ssIdNumber 2 + } + data { + id 70 + ssIdNumber 16 + name "result" + linkNode [66 0 71] + 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 71 + ssIdNumber 8 + name "u" + linkNode [66 70 72] + 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 72 + ssIdNumber 14 + name "relay_par" + linkNode [66 71 73] + 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 73 + ssIdNumber 5 + name "e" + linkNode [66 72 74] + 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 74 + ssIdNumber 9 + name "t" + linkNode [66 73 75] + 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 75 + ssIdNumber 15 + name "u_ref" + linkNode [66 74 76] + 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 76 + ssIdNumber 11 + name "run_exp" + linkNode [66 75 77] + 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 77 + ssIdNumber 4 + name "done" + linkNode [66 76 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 78 + name "multi-NOMAD/Autotuner2/relay_exp\n" + machine 1 + chart 66 + } + target { + id 79 + name "sfun" + description "Default Simulink S-Function Target." + machine 1 + linkNode [1 0 0] + } +}