Model { Name "PIDsim" Version 6.3 MdlSubVersion 0 GraphicalInterface { NumRootInports 0 NumRootOutports 0 ParameterArgumentNames "" ComputedModelVersion "1.77" NumModelReferences 0 NumTestPointedSignals 0 } SavedCharacterEncoding "windows-1252" SaveDefaultBlockParams on SampleTimeColors off LibraryLinkDisplay "none" WideLines off ShowLineDimensions off ShowPortDataTypes off ShowLoopsOnError on IgnoreBidirectionalLines off ShowStorageClass off ShowTestPointIcons on ShowViewerIcons on SortedOrder off ExecutionContextIcon off ShowLinearizationAnnotations on RecordCoverage off CovPath "/" CovSaveName "covdata" CovMetricSettings "dw" CovNameIncrementing off CovHtmlReporting on covSaveCumulativeToWorkspaceVar on CovSaveSingleToWorkspaceVar on CovCumulativeVarName "covCumulativeData" CovCumulativeReport off CovReportOnPause on ScopeRefreshTime 0.035000 OverrideScopeRefreshTime on DisableAllScopes off DataTypeOverride "UseLocalSettings" MinMaxOverflowLogging "UseLocalSettings" MinMaxOverflowArchiveMode "Overwrite" BlockNameDataTip off BlockParametersDataTip off BlockDescriptionStringDataTip off ToolBar on StatusBar on BrowserShowLibraryLinks off BrowserLookUnderMasks off Created "Wed Jul 30 14:07:26 2008" Creator "pavlict" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%" LastModifiedBy "tpavlic" ModifiedDateFormat "%" LastModifiedDate "Fri Aug 1 15:35:10 2008" ModelVersionFormat "1.%" ConfigurationManager "None" LinearizationMsg "none" Profile off ParamWorkspaceSource "MATLABWorkspace" AccelSystemTargetFile "accel.tlc" AccelTemplateMakefile "accel_default_tmf" AccelMakeCommand "make_rtw" TryForcingSFcnDF off ExtModeBatchMode off ExtModeEnableFloating on ExtModeTrigType "manual" ExtModeTrigMode "normal" ExtModeTrigPort "1" ExtModeTrigElement "any" ExtModeTrigDuration 1000 ExtModeTrigDurationFloating "auto" ExtModeTrigHoldOff 0 ExtModeTrigDelay 0 ExtModeTrigDirection "rising" ExtModeTrigLevel 0 ExtModeArchiveMode "off" ExtModeAutoIncOneShot off ExtModeIncDirWhenArm off ExtModeAddSuffixToVar off ExtModeWriteAllDataToWs off ExtModeArmWhenConnect on ExtModeSkipDownloadWhenConnect off ExtModeLogAll on ExtModeAutoUpdateStatusClock off BufferReuse off StrictBusMsg "Warning" ProdHWDeviceType "32-bit Generic" ShowModelReferenceBlockVersion off ShowModelReferenceBlockIO off Array { Type "Handle" Dimension 1 Simulink.ConfigSet { $ObjectID 1 Version "1.1.0" Array { Type "Handle" Dimension 7 Simulink.SolverCC { $ObjectID 2 Version "1.1.0" StartTime "0.0" StopTime "0.5" AbsTol "auto" FixedStep "0.0001" InitialStep "auto" MaxNumMinSteps "-1" MaxOrder 5 ExtrapolationOrder 4 NumberNewtonIterations 1 MaxStep "auto" MinStep "auto" RelTol "1e-3" SolverMode "Auto" Solver "ode5" SolverName "ode5" ZeroCrossControl "UseLocalSettings" AlgebraicLoopSolver "TrustRegion" SolverResetMethod "Fast" PositivePriorityOrder off AutoInsertRateTranBlk off SampleTimeConstraint "Unconstrained" RateTranMode "Deterministic" } Simulink.DataIOCC { $ObjectID 3 Version "1.1.0" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" InitialState "xInitial" LimitDataPoints on MaxDataPoints "1000" LoadExternalInput off LoadInitialState off SaveFinalState off SaveFormat "Array" SaveOutput off SaveState off SignalLogging off InspectSignalLogs off SaveTime off StateSaveName "xout" TimeSaveName "tout" OutputSaveName "yout" SignalLoggingName "logsout" OutputOption "RefineOutputTimes" OutputTimes "[]" Refine "1" } Simulink.OptimizationCC { $ObjectID 4 Array { Type "Cell" Dimension 5 Cell "ZeroExternalMemoryAtStartup" Cell "ZeroInternalMemoryAtStartup" Cell "InitFltsAndDblsToZero" Cell "OptimizeModelRefInitCode" Cell "NoFixptDivByZeroProtection" PropName "DisabledProps" } Version "1.1.0" BlockReduction off BooleanDataType off ConditionallyExecuteInputs off InlineParams off InlineInvariantSignals off OptimizeBlockIOStorage off BufferReuse off EnforceIntegerDowncast on ExpressionFolding off FoldNonRolledExpr on LocalBlockOutputs off ParameterPooling on RollThreshold 5 SystemCodeInlineAuto off StateBitsets off DataBitsets off UseTempVars off ZeroExternalMemoryAtStartup on ZeroInternalMemoryAtStartup on InitFltsAndDblsToZero on NoFixptDivByZeroProtection off EfficientFloat2IntCast off OptimizeModelRefInitCode off LifeSpan "inf" BufferReusableBoundary on } Simulink.DebuggingCC { $ObjectID 5 Version "1.1.0" RTPrefix "error" ConsistencyChecking "none" ArrayBoundsChecking "none" SignalInfNanChecking "none" ReadBeforeWriteMsg "UseLocalSettings" WriteAfterWriteMsg "UseLocalSettings" WriteAfterReadMsg "UseLocalSettings" AlgebraicLoopMsg "warning" ArtificialAlgebraicLoopMsg "warning" CheckSSInitialOutputMsg on CheckExecutionContextPreStartOutputMsg off CheckExecutionContextRuntimeOutputMsg off SignalResolutionControl "UseLocalSettings" BlockPriorityViolationMsg "warning" MinStepSizeMsg "warning" SolverPrmCheckMsg "warning" InheritedTsInSrcMsg "warning" DiscreteInheritContinuousMsg "warning" MultiTaskDSMMsg "error" MultiTaskRateTransMsg "error" SingleTaskRateTransMsg "none" TasksWithSamePriorityMsg "warning" SigSpecEnsureSampleTimeMsg "warning" CheckMatrixSingularityMsg "none" IntegerOverflowMsg "warning" Int32ToFloatConvMsg "warning" ParameterDowncastMsg "error" ParameterOverflowMsg "error" ParameterUnderflowMsg "none" ParameterPrecisionLossMsg "warning" UnderSpecifiedDataTypeMsg "none" UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" FcnCallInpInsideContextMsg "Use local settings" SignalLabelMismatchMsg "none" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" UnconnectedLineMsg "warning" SFcnCompatibilityMsg "none" UniqueDataStoreMsg "none" BusObjectLabelMismatch "warning" RootOutportRequireBusObject "warning" AssertControl "UseLocalSettings" EnableOverflowDetection off ModelReferenceIOMsg "none" ModelReferenceVersionMismatchMessage "none" ModelReferenceIOMismatchMessage "none" ModelReferenceCSMismatchMessage "none" ModelReferenceSimTargetVerbose off UnknownTsInhSupMsg "warning" ModelReferenceDataLoggingMessage "warning" ModelReferenceSymbolNameMessage "warning" ModelReferenceExtraNoncontSigs "error" } Simulink.HardwareCC { $ObjectID 6 Version "1.1.0" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 ProdBitPerLong 32 ProdIntDivRoundTo "Undefined" ProdEndianess "Unspecified" ProdWordSize 32 ProdShiftRightIntArith on ProdHWDeviceType "32-bit Generic" TargetBitPerChar 8 TargetBitPerShort 16 TargetBitPerInt 32 TargetBitPerLong 32 TargetShiftRightIntArith on TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 TargetTypeEmulationWarnSuppressLevel 0 TargetPreprocMaxBitsSint 32 TargetPreprocMaxBitsUint 32 TargetHWDeviceType "Specified" TargetUnknown off ProdEqTarget on } Simulink.ModelReferenceCC { $ObjectID 7 Version "1.1.0" UpdateModelReferenceTargets "IfOutOfDateOrStructuralChange" CheckModelReferenceTargetMessage "error" ModelReferenceNumInstancesAllowed "Multi" ModelReferencePassRootInputsByReference on ModelReferenceMinAlgLoopOccurrences off } Simulink.RTWCC { $BackupClass "Simulink.RTWCC" $ObjectID 8 Array { Type "Cell" Dimension 1 Cell "IncludeHyperlinkInReport" PropName "DisabledProps" } Version "1.1.0" SystemTargetFile "grt.tlc" GenCodeOnly off MakeCommand "make_rtw" TemplateMakefile "grt_default_tmf" GenerateReport off SaveLog off RTWVerbose on RetainRTWFile off ProfileTLC off TLCDebug off TLCCoverage off TLCAssert off ProcessScriptMode "Default" ConfigurationMode "Optimized" ConfigAtBuild off IncludeHyperlinkInReport off LaunchReport off TargetLang "C" Array { Type "Handle" Dimension 2 Simulink.CodeAppCC { $ObjectID 9 Array { Type "Cell" Dimension 16 Cell "IgnoreCustomStorageClasses" Cell "InsertBlockDesc" Cell "SFDataObjDesc" Cell "SimulinkDataObjDesc" Cell "DefineNamingRule" Cell "SignalNamingRule" Cell "ParamNamingRule" Cell "InlinedPrmAccess" Cell "CustomSymbolStr" Cell "CustomSymbolStrGlobalVar" Cell "CustomSymbolStrType" Cell "CustomSymbolStrField" Cell "CustomSymbolStrFcn" Cell "CustomSymbolStrBlkIO" Cell "CustomSymbolStrTmpVar" Cell "CustomSymbolStrMacro" PropName "DisabledProps" } Version "1.1.0" ForceParamTrailComments off GenerateComments on IgnoreCustomStorageClasses on IncHierarchyInIds off MaxIdLength 31 PreserveName off PreserveNameWithParent off ShowEliminatedStatement off IncAutoGenComments off SimulinkDataObjDesc off SFDataObjDesc off IncDataTypeInIds off PrefixModelToSubsysFcnNames on CustomSymbolStr "$R$N$M" MangleLength 1 DefineNamingRule "None" ParamNamingRule "None" SignalNamingRule "None" InsertBlockDesc off SimulinkBlockComments on EnableCustomComments off InlinedPrmAccess "Literals" ReqsInCode off } Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" $ObjectID 10 Array { Type "Cell" Dimension 15 Cell "IncludeMdlTerminateFcn" Cell "CombineOutputUpdateFcns" Cell "SuppressErrorStatus" Cell "ERTCustomFileBanners" Cell "GenerateSampleERTMain" Cell "GenerateTestInterfaces" Cell "ModelStepFunctionPrototypeControlComp" "liant" Cell "MultiInstanceERTCode" Cell "PurelyIntegerCode" Cell "SupportNonFinite" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" Cell "PortableWordSizes" PropName "DisabledProps" } Version "1.1.0" TargetFcnLib "ansi_tfl_tmw.mat" TargetLibSuffix "" TargetPreCompLibLocation "" GenFloatMathFcnCalls "ANSI_C" UtilityFuncGeneration "Auto" GenerateFullHeader on GenerateSampleERTMain off IsPILTarget off ModelReferenceCompliant on IncludeMdlTerminateFcn on CombineOutputUpdateFcns off SuppressErrorStatus off IncludeFileDelimiter "Auto" ERTCustomFileBanners off SupportAbsoluteTime on LogVarNameModifier "rt_" MatFileLogging on MultiInstanceERTCode off SupportNonFinite on SupportComplex on PurelyIntegerCode off SupportContinuousTime on SupportNonInlinedSFcns on ExtMode off ExtModeStaticAlloc off ExtModeTesting off ExtModeStaticAllocSize 1000000 ExtModeTransport 0 ExtModeMexFile "ext_comm" RTWCAPISignals off RTWCAPIParams off RTWCAPIStates off GenerateASAP2 off } PropName "Components" } } PropName "Components" } Name "Configuration" SimulationMode "normal" CurrentDlgPage "Solver" } PropName "ConfigurationSets" } Simulink.ConfigSet { $PropName "ActiveConfigurationSet" $ObjectID 1 } BlockDefaults { Orientation "right" ForegroundColor "black" BackgroundColor "white" DropShadow off NamePlacement "normal" FontName "Arial" FontSize 10 FontWeight "normal" FontAngle "normal" ShowName on } BlockParameterDefaults { Block { BlockType Clock DisplayTime off } Block { BlockType DeadZone LowerValue "-0.5" UpperValue "0.5" SaturateOnIntegerOverflow on LinearizeAsGain on ZeroCross on SampleTime "-1" } Block { BlockType Derivative LinearizePole "inf" } Block { BlockType Gain Gain "1" Multiplication "Element-wise(K.*u)" ParameterDataTypeMode "Same as input" ParameterDataType "sfix(16)" ParameterScalingMode "Best Precision: Matrix-wise" ParameterScaling "2^0" OutDataTypeMode "Same as input" OutDataType "sfix(16)" OutScaling "2^0" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType Inport Port "1" UseBusObject off BusObject "BusObject" BusOutputAsStruct off PortDimensions "-1" SampleTime "-1" DataType "auto" OutDataType "sfix(16)" OutScaling "2^0" SignalType "auto" SamplingMode "auto" LatchByDelayingOutsideSignal off LatchByCopyingInsideSignal off Interpolate on } Block { BlockType Integrator ExternalReset "none" InitialConditionSource "internal" InitialCondition "0" LimitOutput off UpperSaturationLimit "inf" LowerSaturationLimit "-inf" ShowSaturationPort off ShowStatePort off AbsoluteTolerance "auto" IgnoreLimit off ZeroCross on } Block { BlockType Outport Port "1" UseBusObject off BusObject "BusObject" BusOutputAsStruct off PortDimensions "-1" SampleTime "-1" DataType "auto" OutDataType "sfix(16)" OutScaling "2^0" SignalType "auto" SamplingMode "auto" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Quantizer QuantizationInterval "0.5" LinearizeAsGain on SampleTime "-1" } Block { BlockType RateLimiter RisingSlewLimit "1" FallingSlewLimit "-1" SampleTimeMode "continuous" InitialCondition "0" LinearizeAsGain on } Block { BlockType Saturate UpperLimit "0.5" LowerLimit "-0.5" LinearizeAsGain on ZeroCross on SampleTime "-1" } Block { BlockType Scope ModelBased off TickLabels "OneTimeTick" ZoomMode "on" Grid "on" TimeRange "auto" YMin "-5" YMax "5" SaveToWorkspace off SaveName "ScopeData" LimitDataPoints on MaxDataPoints "5000" Decimation "1" SampleInput off SampleTime "-1" } Block { BlockType Step Time "1" Before "0" After "1" SampleTime "-1" VectorParams1D on ZeroCross on } Block { BlockType SubSystem ShowPortLabels on Permissions "ReadWrite" PermitHierarchicalResolution "All" SystemSampleTime "-1" RTWFcnNameOpts "Auto" RTWFileNameOpts "Auto" SimViewingDevice off DataTypeOverride "UseLocalSettings" MinMaxOverflowLogging "UseLocalSettings" } Block { BlockType Sum IconShape "rectangular" Inputs "++" InputSameDT on OutDataTypeMode "Same as first input" OutDataType "sfix(16)" OutScaling "2^0" LockScale off RndMeth "Floor" SaturateOnIntegerOverflow on SampleTime "-1" } Block { BlockType ToWorkspace VariableName "simulink_output" MaxDataPoints "1000" Decimation "1" SampleTime "0" FixptAsFi off } Block { BlockType TransferFcn Numerator "[1]" Denominator "[1 2 1]" AbsoluteTolerance "auto" Realization "auto" } } AnnotationDefaults { HorizontalAlignment "center" VerticalAlignment "middle" ForegroundColor "black" BackgroundColor "white" DropShadow off FontName "Arial" FontSize 10 FontWeight "normal" FontAngle "normal" } LineDefaults { FontName "Arial" FontSize 9 FontWeight "normal" FontAngle "normal" } System { Name "PIDsim" Location [1524, 49, 2448, 1027] Open on ModelBrowserVisibility off ModelBrowserWidth 212 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "usletter" PaperUnits "inches" ZoomFactor "100" ReportName "simulink-default.rpt" Block { BlockType Sum Name "Add" Ports [3, 1] Position [405, 968, 425, 1152] ShowName off Inputs "+++" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Add1" Ports [3, 1] Position [405, 1263, 425, 1447] ShowName off Inputs "+++" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" SaturateOnIntegerOverflow off } Block { BlockType Sum Name "Add2" Ports [3, 1] Position [425, 164, 445, 356] ShowName off Inputs "++|-" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" SaturateOnIntegerOverflow off } Block { BlockType Clock Name "Clock" Position [40, 685, 60, 705] Orientation "down" NamePlacement "alternate" ShowName off Decimation "10" } Block { BlockType DeadZone Name "Dead Zone" Position [590, 530, 620, 560] ShowName off LowerValue "-dead_zone_threshold" UpperValue "dead_zone_threshold" Port { PortNumber 1 Name "u" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType DeadZone Name "Dead Zone1" Position [580, 770, 610, 800] ShowName off LowerValue "-dead_zone_threshold" UpperValue "dead_zone_threshold" } Block { BlockType DeadZone Name "Dead Zone2" Position [600, 1045, 630, 1075] ShowName off LowerValue "-dead_zone_threshold" UpperValue "dead_zone_threshold" } Block { BlockType DeadZone Name "Dead Zone3" Position [615, 1340, 645, 1370] ShowName off LowerValue "-dead_zone_threshold" UpperValue "dead_zone_threshold" } Block { BlockType DeadZone Name "Dead Zone4" Position [615, 245, 645, 275] ShowName off LowerValue "-dead_zone_threshold" UpperValue "dead_zone_threshold" } Block { BlockType Derivative Name "Derivative" Position [355, 1105, 385, 1135] ShowName off } Block { BlockType Derivative Name "Derivative1" Position [360, 1400, 390, 1430] ShowName off LinearizePole "N" } Block { BlockType Integrator Name "Integrator" Ports [1, 1] Position [355, 1045, 385, 1075] ShowName off IgnoreLimit off } Block { BlockType Integrator Name "Integrator1" Ports [1, 1] Position [360, 1340, 390, 1370] ShowName off IgnoreLimit off } Block { BlockType Integrator Name "Integrator2" Ports [1, 1] Position [360, 220, 390, 250] ShowName off IgnoreLimit off } Block { BlockType Gain Name "Kd" Position [305, 1105, 335, 1135] ShowName off Gain "Kd" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Kd1" Position [310, 1400, 340, 1430] ShowName off Gain "Kd" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Kd2" Position [295, 320, 325, 350] ShowName off Gain "Kd" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Ki" Position [305, 1045, 335, 1075] ShowName off Gain "Ki" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Ki1" Position [310, 1340, 340, 1370] ShowName off Gain "Ki" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Ki2" Position [295, 220, 325, 250] ShowName off Gain "Ki" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Kp" Position [305, 985, 335, 1015] ShowName off Gain "Kp" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Kp1" Position [310, 1280, 340, 1310] ShowName off Gain "Kp" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Gain Name "Kp2" Position [295, 170, 325, 200] ShowName off Gain "Kp" ParameterDataTypeMode "Inherit via internal rule" OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off } Block { BlockType Reference Name "PID Controller" Ports [1, 1] Position [345, 530, 375, 560] SourceBlock "simulink_extras/Additional\nLinear/PID Controll" "er" SourceType "PID Controller" ShowPortLabels on P "Kp" I "Ki" D "Kd" } Block { BlockType Reference Name "PID Controller\n(with Approximate\nDerivative)" Ports [1, 1] Position [345, 770, 375, 800] NamePlacement "alternate" SourceBlock "simulink_extras/Additional\nLinear/PID Controll" "er\n(with Approximate\nDerivative)" SourceType "PID(2) Controller" ShowPortLabels on P "Kp" I "Ki" D "Kd" N "N" } Block { BlockType TransferFcn Name "Plant" Position [650, 1041, 745, 1079] ShowName off Numerator "plant_num" Denominator "plant_den" Port { PortNumber 1 Name "y_manual" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType TransferFcn Name "Plant1" Position [650, 526, 745, 564] ShowName off Numerator "plant_num" Denominator "plant_den" Port { PortNumber 1 Name "y" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType TransferFcn Name "Plant2" Position [655, 766, 750, 804] ShowName off Numerator "plant_num" Denominator "plant_den" Port { PortNumber 1 Name "y_pida" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType TransferFcn Name "Plant3" Position [665, 1336, 760, 1374] ShowName off Numerator "plant_num" Denominator "plant_den" Port { PortNumber 1 Name "y_manuala" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType TransferFcn Name "Plant4" Position [665, 241, 760, 279] ShowName off Numerator "plant_num" Denominator "plant_den" Port { PortNumber 1 Name "y_lab" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType TransferFcn Name "Plant5" Position [345, 315, 405, 355] ShowName off Numerator "[1 0]" Denominator "[(1/N) 1]" } Block { BlockType Quantizer Name "Quantizer1" Position [685, 820, 715, 850] Orientation "left" NamePlacement "alternate" ShowName off QuantizationInterval "ADCLSB" Port { PortNumber 1 Name "yq_pida" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Quantizer Name "Quantizer10" Position [490, 1340, 520, 1370] ShowName off QuantizationInterval "DACLSB" Port { PortNumber 1 Name "u_manuala" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Quantizer Name "Quantizer2" Position [715, 575, 745, 605] Orientation "left" NamePlacement "alternate" ShowName off QuantizationInterval "ADCLSB" Port { PortNumber 1 Name "yq" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Quantizer Name "Quantizer3" Position [755, 1140, 785, 1170] Orientation "down" NamePlacement "alternate" ShowName off QuantizationInterval "ADCLSB" Port { PortNumber 1 Name "yq_manual" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Quantizer Name "Quantizer4" Position [510, 245, 540, 275] ShowName off QuantizationInterval "DACLSB" Port { PortNumber 1 Name "u_lab" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Quantizer Name "Quantizer5" Position [765, 315, 795, 345] Orientation "down" NamePlacement "alternate" ShowName off QuantizationInterval "ADCLSB" } Block { BlockType Quantizer Name "Quantizer6" Position [765, 1440, 795, 1470] Orientation "down" NamePlacement "alternate" ShowName off QuantizationInterval "ADCLSB" Port { PortNumber 1 Name "yq_manuala" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Quantizer Name "Quantizer7" Position [460, 530, 490, 560] ShowName off QuantizationInterval "DACLSB" Port { PortNumber 1 Name "u" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Quantizer Name "Quantizer8" Position [475, 770, 505, 800] ShowName off QuantizationInterval "DACLSB" Port { PortNumber 1 Name "u_pida" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Quantizer Name "Quantizer9" Position [490, 1045, 520, 1075] ShowName off QuantizationInterval "DACLSB" Port { PortNumber 1 Name "u_manual" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType RateLimiter Name "Rate Limiter" Position [65, 920, 95, 950] ShowName off RisingSlewLimit "slew_rate" FallingSlewLimit "-slew_rate" SampleTimeMode "inherited" Port { PortNumber 1 Name "r" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Saturate Name "Saturation" Position [415, 530, 445, 560] ShowName off UpperLimit "saturation_threshold" LowerLimit "-saturation_threshold" } Block { BlockType Saturate Name "Saturation1" Position [430, 770, 460, 800] ShowName off UpperLimit "saturation_threshold" LowerLimit "-saturation_threshold" } Block { BlockType Saturate Name "Saturation2" Position [445, 1045, 475, 1075] ShowName off UpperLimit "saturation_threshold" LowerLimit "-saturation_threshold" } Block { BlockType Saturate Name "Saturation3" Position [445, 1340, 475, 1370] ShowName off UpperLimit "saturation_threshold" LowerLimit "-saturation_threshold" } Block { BlockType Saturate Name "Saturation4" Position [465, 245, 495, 275] ShowName off UpperLimit "saturation_threshold" LowerLimit "-saturation_threshold" } Block { BlockType Step Name "Step" Position [15, 920, 45, 950] Time "0" SampleTime "0" Port { PortNumber 1 Name "r" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Sum Name "Sum" Ports [2, 1] Position [160, 1050, 180, 1070] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off Port { PortNumber 1 Name "e_manual" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Sum Name "Sum1" Ports [2, 1] Position [165, 535, 185, 555] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off Port { PortNumber 1 Name "e" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Sum Name "Sum2" Ports [2, 1] Position [160, 775, 180, 795] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off Port { PortNumber 1 Name "e_pida" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Sum Name "Sum3" Ports [2, 1] Position [160, 1345, 180, 1365] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off Port { PortNumber 1 Name "e_manuala" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType Sum Name "Sum4" Ports [2, 1] Position [155, 225, 175, 245] ShowName off IconShape "round" Inputs "|+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" SaturateOnIntegerOverflow off Port { PortNumber 1 Name "e_lab" RTWStorageClass "Auto" DataLoggingNameMode "SignalName" } } Block { BlockType ToWorkspace Name "To Workspace" Position [610, 929, 690, 951] ShowName off FontSize 14 VariableName "u_manual" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace1" Position [31, 725, 69, 760] Orientation "down" NamePlacement "alternate" ShowName off FontSize 14 VariableName "t" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace10" Position [250, 425, 270, 445] ShowName off FontSize 14 VariableName "e" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace11" Position [215, 659, 265, 681] ShowName off FontSize 14 VariableName "e_pida" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace12" Position [220, 888, 305, 912] ShowName off FontSize 14 VariableName "e_manual" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace13" Position [220, 1198, 310, 1222] ShowName off FontSize 14 VariableName "e_manuala" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace14" Position [215, 98, 305, 122] ShowName off FontSize 14 VariableName "e_lab" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace15" Position [640, 128, 730, 152] ShowName off FontSize 14 VariableName "u_lab" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace16" Position [810, 209, 895, 231] ShowName off FontSize 14 VariableName "y_lab" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace2" Position [805, 1009, 890, 1031] ShowName off FontSize 14 VariableName "y_manual" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace3" Position [100, 860, 120, 880] Orientation "up" ShowName off FontSize 14 VariableName "r" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace4" Position [645, 415, 665, 435] ShowName off FontSize 14 VariableName "u" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace5" Position [820, 495, 840, 515] ShowName off FontSize 14 VariableName "y" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace6" Position [590, 655, 655, 675] ShowName off FontSize 14 VariableName "u_pida" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace7" Position [815, 734, 865, 756] ShowName off FontSize 14 VariableName "y_pida" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace8" Position [625, 1223, 715, 1247] ShowName off FontSize 14 VariableName "u_manuala" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType ToWorkspace Name "To Workspace9" Position [815, 1304, 900, 1326] ShowName off FontSize 14 VariableName "y_manuala" MaxDataPoints "inf" SampleTime "-1" SaveFormat "Array" } Block { BlockType Scope Name "e" Ports [1] Position [245, 469, 275, 501] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-0.4" YMax "1" SaveName "ScopeData9" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "e_lab" Ports [1] Position [215, 139, 245, 171] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-0.4" YMax "1" SaveName "ScopeData13" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "e_manual" Ports [1] Position [220, 929, 250, 961] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-0.4" YMax "1" SaveName "ScopeData11" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "e_manuala" Ports [1] Position [220, 1239, 250, 1271] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-0.4" YMax "1" SaveName "ScopeData12" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "e_pida" Ports [1] Position [230, 699, 260, 731] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-1" YMax "1" SaveName "ScopeData10" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "r" Ports [1] Position [94, 975, 126, 1005] Orientation "down" NamePlacement "alternate" Floating off Location [188, 390, 512, 629] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } SaveName "ScopeData2" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "u" Ports [1] Position [640, 459, 670, 491] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-10" YMax "70" SaveName "ScopeData3" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "u_lab" Ports [1] Position [640, 169, 670, 201] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-10" YMax "70" SaveName "ScopeData14" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "u_manual" Ports [1] Position [610, 974, 640, 1006] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-10" YMax "70" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "u_manuala" Ports [1] Position [625, 1264, 655, 1296] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-10" YMax "70" SaveName "ScopeData7" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "u_pida" Ports [1] Position [590, 699, 620, 731] Floating off Location [184, 340, 516, 633] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "-80" YMax "80" SaveName "ScopeData5" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "y" Ports [1] Position [815, 529, 845, 561] Floating off Location [17, 91, 341, 330] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "0" YMax "1.4" SaveName "ScopeData4" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "y_lab" Ports [1] Position [810, 244, 840, 276] Floating off Location [17, 674, 341, 913] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } SaveName "ScopeData15" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "y_manual" Ports [1] Position [800, 1044, 830, 1076] Floating off Location [17, 674, 341, 913] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "0" YMax "1.4" SaveName "ScopeData1" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "y_manuala" Ports [1] Position [810, 1339, 840, 1371] Floating off Location [17, 674, 341, 913] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } SaveName "ScopeData8" DataFormat "StructureWithTime" SampleTime "0" } Block { BlockType Scope Name "y_pida" Ports [1] Position [810, 769, 840, 801] Floating off Location [17, 382, 341, 621] Open off NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "0.5" YMin "0" YMax "2" SaveName "ScopeData6" DataFormat "StructureWithTime" SampleTime "0" } Line { SrcBlock "Clock" SrcPort 1 DstBlock "To Workspace1" DstPort 1 } Line { Name "r" SrcBlock "Step" SrcPort 1 DstBlock "Rate Limiter" DstPort 1 } Line { Name "y_manual" SrcBlock "Plant" SrcPort 1 Points [0, 0; 20, 0] Branch { DstBlock "y_manual" DstPort 1 } Branch { Points [0, -40] DstBlock "To Workspace2" DstPort 1 } Branch { Labels [-1, 1] DstBlock "Quantizer3" DstPort 1 } } Line { Name "e_manual" SrcBlock "Sum" SrcPort 1 Points [10, 0] Branch { Points [0, -115] Branch { DstBlock "e_manual" DstPort 1 } Branch { Points [0, -45] DstBlock "To Workspace12" DstPort 1 } } Branch { Labels [1, 0] Points [95, 0] Branch { DstBlock "Ki" DstPort 1 } Branch { DstBlock "Kp" DstPort 1 } Branch { DstBlock "Kd" DstPort 1 } } } Line { SrcBlock "Derivative" SrcPort 1 DstBlock "Add" DstPort 3 } Line { SrcBlock "Integrator" SrcPort 1 DstBlock "Add" DstPort 2 } Line { SrcBlock "Kp" SrcPort 1 DstBlock "Add" DstPort 1 } Line { SrcBlock "Ki" SrcPort 1 DstBlock "Integrator" DstPort 1 } Line { SrcBlock "Kd" SrcPort 1 DstBlock "Derivative" DstPort 1 } Line { Name "y" SrcBlock "Plant1" SrcPort 1 Points [0, 0; 30, 0] Branch { DstBlock "y" DstPort 1 } Branch { Points [0, -40] DstBlock "To Workspace5" DstPort 1 } Branch { Labels [1, 0] Points [0, 45] DstBlock "Quantizer2" DstPort 1 } } Line { Name "e" Labels [0, 0] SrcBlock "Sum1" SrcPort 1 Points [5, 0] Branch { Points [0, -60] Branch { DstBlock "e" DstPort 1 } Branch { Points [0, -50] DstBlock "To Workspace10" DstPort 1 } } Branch { DstBlock "PID Controller" DstPort 1 } } Line { Name "y_pida" SrcBlock "Plant2" SrcPort 1 Points [0, 0; 20, 0] Branch { DstBlock "y_pida" DstPort 1 } Branch { Points [0, -40] DstBlock "To Workspace7" DstPort 1 } Branch { Labels [-1, 0] Points [0, 50] DstBlock "Quantizer1" DstPort 1 } } Line { Name "e_pida" Labels [0, 0] SrcBlock "Sum2" SrcPort 1 Points [5, 0] Branch { Points [0, 0; 0, -70] Branch { DstBlock "e_pida" DstPort 1 } Branch { Points [0, -45] DstBlock "To Workspace11" DstPort 1 } } Branch { DstBlock "PID Controller\n(with Approximate\nDerivative" ")" DstPort 1 } } Line { Name "y_manuala" SrcBlock "Plant3" SrcPort 1 Points [0, 0; 15, 0] Branch { DstBlock "y_manuala" DstPort 1 } Branch { Points [0, -40] DstBlock "To Workspace9" DstPort 1 } Branch { Labels [-1, 1] DstBlock "Quantizer6" DstPort 1 } } Line { Name "e_manuala" Labels [0, 0] SrcBlock "Sum3" SrcPort 1 Points [10, 0] Branch { Points [0, -100] Branch { DstBlock "e_manuala" DstPort 1 } Branch { Points [0, -45] DstBlock "To Workspace13" DstPort 1 } } Branch { Points [100, 0] Branch { DstBlock "Ki1" DstPort 1 } Branch { DstBlock "Kp1" DstPort 1 } Branch { DstBlock "Kd1" DstPort 1 } } } Line { SrcBlock "Integrator1" SrcPort 1 DstBlock "Add1" DstPort 2 } Line { SrcBlock "Kp1" SrcPort 1 DstBlock "Add1" DstPort 1 } Line { SrcBlock "Ki1" SrcPort 1 DstBlock "Integrator1" DstPort 1 } Line { SrcBlock "Kd1" SrcPort 1 DstBlock "Derivative1" DstPort 1 } Line { SrcBlock "Derivative1" SrcPort 1 DstBlock "Add1" DstPort 3 } Line { SrcBlock "Saturation" SrcPort 1 Points [-5, 0] DstBlock "Quantizer7" DstPort 1 } Line { SrcBlock "PID Controller" SrcPort 1 Points [0, 0] DstBlock "Saturation" DstPort 1 } Line { SrcBlock "PID Controller\n(with Approximate\nDerivative)" SrcPort 1 DstBlock "Saturation1" DstPort 1 } Line { SrcBlock "Saturation1" SrcPort 1 Points [-5, 0] DstBlock "Quantizer8" DstPort 1 } Line { SrcBlock "Add" SrcPort 1 DstBlock "Saturation2" DstPort 1 } Line { SrcBlock "Saturation2" SrcPort 1 DstBlock "Quantizer9" DstPort 1 } Line { SrcBlock "Add1" SrcPort 1 DstBlock "Saturation3" DstPort 1 } Line { SrcBlock "Saturation3" SrcPort 1 DstBlock "Quantizer10" DstPort 1 } Line { Name "u" SrcBlock "Dead Zone" SrcPort 1 Points [0, 0] DstBlock "Plant1" DstPort 1 } Line { SrcBlock "Dead Zone1" SrcPort 1 Points [25, 0] DstBlock "Plant2" DstPort 1 } Line { SrcBlock "Dead Zone2" SrcPort 1 DstBlock "Plant" DstPort 1 } Line { SrcBlock "Dead Zone3" SrcPort 1 DstBlock "Plant3" DstPort 1 } Line { Name "r" SrcBlock "Rate Limiter" SrcPort 1 Points [10, 0] Branch { DstBlock "r" DstPort 1 } Branch { DstBlock "To Workspace3" DstPort 1 } Branch { Labels [1, 0] Points [25, 0] Branch { Points [0, 125] Branch { DstBlock "Sum" DstPort 1 } Branch { Points [0, 295] DstBlock "Sum3" DstPort 1 } } Branch { Points [0, -150] Branch { DstBlock "Sum2" DstPort 1 } Branch { Points [0, -240] Branch { DstBlock "Sum1" DstPort 1 } Branch { Points [0, -310] DstBlock "Sum4" DstPort 1 } } } } } Line { Name "y_lab" SrcBlock "Plant4" SrcPort 1 Points [0, 0; 15, 0] Branch { DstBlock "y_lab" DstPort 1 } Branch { Points [0, -40] DstBlock "To Workspace16" DstPort 1 } Branch { Labels [1, 0] DstBlock "Quantizer5" DstPort 1 } } Line { Name "e_lab" Labels [0, 0] SrcBlock "Sum4" SrcPort 1 Points [10, 0] Branch { Points [0, -80] Branch { DstBlock "e_lab" DstPort 1 } Branch { Points [0, -45] DstBlock "To Workspace14" DstPort 1 } } Branch { Points [75, 0] Branch { DstBlock "Ki2" DstPort 1 } Branch { Points [0, -50] DstBlock "Kp2" DstPort 1 } } } Line { SrcBlock "Integrator2" SrcPort 1 DstBlock "Add2" DstPort 2 } Line { SrcBlock "Kp2" SrcPort 1 DstBlock "Add2" DstPort 1 } Line { SrcBlock "Ki2" SrcPort 1 DstBlock "Integrator2" DstPort 1 } Line { SrcBlock "Add2" SrcPort 1 DstBlock "Saturation4" DstPort 1 } Line { SrcBlock "Saturation4" SrcPort 1 DstBlock "Quantizer4" DstPort 1 } Line { SrcBlock "Dead Zone4" SrcPort 1 DstBlock "Plant4" DstPort 1 } Line { SrcBlock "Kd2" SrcPort 1 DstBlock "Plant5" DstPort 1 } Line { SrcBlock "Plant5" SrcPort 1 DstBlock "Add2" DstPort 3 } Line { SrcBlock "Quantizer5" SrcPort 1 Points [0, 30; -615, 0; 0, -45] Branch { DstBlock "Sum4" DstPort 2 } Branch { DstBlock "Kd2" DstPort 1 } } Line { Name "yq" Labels [1, 0] SrcBlock "Quantizer2" SrcPort 1 Points [-535, 0] DstBlock "Sum1" DstPort 2 } Line { Name "yq_pida" Labels [1, 0] SrcBlock "Quantizer1" SrcPort 1 Points [-510, 0] DstBlock "Sum2" DstPort 2 } Line { Name "yq_manual" Labels [1, 1] SrcBlock "Quantizer3" SrcPort 1 Points [-600, 0] DstBlock "Sum" DstPort 2 } Line { Name "yq_manuala" Labels [1, 1] SrcBlock "Quantizer6" SrcPort 1 Points [-610, 0] DstBlock "Sum3" DstPort 2 } Line { Name "u_lab" Labels [0, 0] SrcBlock "Quantizer4" SrcPort 1 Points [25, 0] Branch { Points [0, -75] Branch { DstBlock "u_lab" DstPort 1 } Branch { Points [0, -45] DstBlock "To Workspace15" DstPort 1 } } Branch { DstBlock "Dead Zone4" DstPort 1 } } Line { Name "u" Labels [1, 1] SrcBlock "Quantizer7" SrcPort 1 Points [20, 0] Branch { Points [0, -70] Branch { DstBlock "u" DstPort 1 } Branch { Points [0, -50] DstBlock "To Workspace4" DstPort 1 } } Branch { Points [60, 0] DstBlock "Dead Zone" DstPort 1 } } Line { Name "u_pida" SrcBlock "Quantizer8" SrcPort 1 Points [10, 0] Branch { Points [0, -70] Branch { DstBlock "u_pida" DstPort 1 } Branch { Points [0, -50] DstBlock "To Workspace6" DstPort 1 } } Branch { Labels [1, 1] DstBlock "Dead Zone1" DstPort 1 } } Line { Name "u_manual" Labels [0, 0] SrcBlock "Quantizer9" SrcPort 1 Points [25, 0] Branch { Points [0, -70] Branch { DstBlock "u_manual" DstPort 1 } Branch { Points [0, -50] DstBlock "To Workspace" DstPort 1 } } Branch { DstBlock "Dead Zone2" DstPort 1 } } Line { Name "u_manuala" Labels [0, 0] SrcBlock "Quantizer10" SrcPort 1 Points [30, 0] Branch { Points [0, -75] Branch { DstBlock "u_manuala" DstPort 1 } Branch { Points [0, -45] DstBlock "To Workspace8" DstPort 1 } } Branch { DstBlock "Dead Zone3" DstPort 1 } } Annotation { Name "SIMULINK BUG:\nIt does not appear like\ndu/dt r" "esponds to changes\nin pole N." Position [493, 1416] BackgroundColor "cyan" DropShadow on UseDisplayTextAsClickCallback off } Annotation { Name "Because du/dt is broken in lots of ways,\nthis " "approach is more realistic.\n\nPID (with Approximate Derivative)\ndoes not us" "e du/dt internally; it uses a transfer\nfunction (s/(s/N+1))." Position [774, 685] BackgroundColor "cyan" DropShadow on UseDisplayTextAsClickCallback off } Annotation { Name "Try right-clicking on either \nPID block and se" "lecting \n'Look Under Mask' \nto see how it works." Position [364, 491] BackgroundColor "yellow" DropShadow on UseDisplayTextAsClickCallback off } Annotation { Name "Try right-clicking on either \nPID block and se" "lecting \n'Look Under Mask' \nto see how it works. \nCompare to \"lab\" \nimp" "lementation above." Position [359, 691] BackgroundColor "yellow" DropShadow on UseDisplayTextAsClickCallback off } Annotation { Name "In the lab, we \n\"differentiate\"\nthe output " "rather \nthan the error." Position [213, 302] BackgroundColor "green" DropShadow on UseDisplayTextAsClickCallback off } Annotation { Name "This implementation is identical\nto what's und" "er the mask\nof the PID that packaged with\nSimulink." Position [553, 1115] BackgroundColor "magenta" DropShadow on UseDisplayTextAsClickCallback off } Annotation { Name "This model is meant to be called from PID.m.\n" "\nWithout defining lots of things in the workspace,\nit doesn't run well on i" "ts own." Position [469, 44] BackgroundColor "lightBlue" DropShadow on UseDisplayTextAsClickCallback off FontSize 16 } Annotation { Position [53, 1428] UseDisplayTextAsClickCallback off } Annotation { Position [99, 1441] UseDisplayTextAsClickCallback off } Annotation { Position [99, 1441] UseDisplayTextAsClickCallback off } Annotation { Position [52, 1330] UseDisplayTextAsClickCallback off } Annotation { Position [89, 1340] UseDisplayTextAsClickCallback off } Annotation { Position [90, 1338] UseDisplayTextAsClickCallback off } Annotation { Position [90, 1338] UseDisplayTextAsClickCallback off } Annotation { Position [43, 1235] UseDisplayTextAsClickCallback off } Annotation { Name "Copyright (c) 2008 by Theodore P. Pavlic\n\nThi" "s work is licensed under the Creative Commons Attribution-Noncommercial 3.0 U" "nited States License.\nTo view a copy of this license, visit http://creativec" "ommons.org/licenses/by-nc/3.0/us/ or send a\nletter to Creative Commons, 171 " "Second Street, Suite 300, San Francisco, California, 94105, USA." Position [462, 1530] BackgroundColor "gray" DropShadow on UseDisplayTextAsClickCallback off } } }