Model { Name "Topic13_PolePositioning" Version 6.0 GraphicalInterface { NumRootInports 0 NumRootOutports 0 ParameterArgumentNames "" ComputedModelVersion "1.20" NumModelReferences 0 NumTestPointedSignals 0 } SavedCharacterEncoding "ibm-5348_P100-1997" 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 "Sat Oct 20 11:17:40 2007" UpdateHistory "UpdateHistoryNever" ModifiedByFormat "%" LastModifiedBy "cgzkn" ModifiedDateFormat "%" LastModifiedDate "Sat Oct 20 12:53:37 2007" ModelVersionFormat "1.%" ConfigurationManager "None" LinearizationMsg "none" Profile off ParamWorkspaceSource "MATLABWorkspace" AccelSystemTargetFile "accel.tlc" AccelTemplateMakefile "accel_default_tmf" AccelMakeCommand "make_rtw" TryForcingSFcnDF off ExtModeBatchMode off ExtModeEnableFloating on ExtModeTrigType "manual" ExtModeTrigMode "normal" ExtModeTrigPort "1" ExtModeTrigElement "any" ExtModeTrigDuration 1000 ExtModeTrigDurationFloating "auto" ExtModeTrigHoldOff 0 ExtModeTrigDelay 0 ExtModeTrigDirection "rising" ExtModeTrigLevel 0 ExtModeArchiveMode "off" ExtModeAutoIncOneShot off ExtModeIncDirWhenArm off ExtModeAddSuffixToVar off ExtModeWriteAllDataToWs off ExtModeArmWhenConnect on ExtModeSkipDownloadWhenConnect off ExtModeLogAll on ExtModeAutoUpdateStatusClock on BufferReuse on ProdHWDeviceType "32-bit Generic" ShowModelReferenceBlockVersion off ShowModelReferenceBlockIO off Array { Type "Handle" Dimension 1 Simulink.ConfigSet { $ObjectID 1 Version "1.0.4" Array { Type "Handle" Dimension 7 Simulink.SolverCC { $ObjectID 2 Version "1.0.4" StartTime "0.0" StopTime "50" AbsTol "auto" FixedStep "auto" InitialStep "auto" MaxNumMinSteps "-1" MaxOrder 5 ExtrapolationOrder 4 NumberNewtonIterations 1 MaxStep "auto" MinStep "auto" RelTol "1e-3" SolverMode "Auto" Solver "ode15s" ZeroCrossControl "UseLocalSettings" PositivePriorityOrder off AutoInsertRateTranBlk off SampleTimeConstraint "Unconstrained" RateTranMode "Deterministic" } Simulink.DataIOCC { $ObjectID 3 Version "1.0.4" Decimation "1" ExternalInput "[t, u]" FinalStateName "xFinal" InitialState "xInitial" LimitDataPoints on MaxDataPoints "1000" LoadExternalInput off LoadInitialState off SaveFinalState off SaveFormat "Array" SaveOutput on SaveState off SaveTime on StateSaveName "xout" TimeSaveName "tout" OutputSaveName "yout" SignalLoggingName "logsout" OutputOption "RefineOutputTimes" OutputTimes "[]" Refine "1" } Simulink.OptimizationCC { $ObjectID 4 Array { Type "Cell" Dimension 5 Cell "ZeroExternalMemoryAtStartup" Cell "ZeroInternalMemoryAtStartup" Cell "InitFltsAndDblsToZero" Cell "OptimizeModelRefInitCode" Cell "NoFixptDivByZeroProtection" PropName "DisabledProps" } Version "1.0.4" BlockReduction on BooleanDataType on ConditionallyExecuteInputs on ConditionalExecOptimization "on_for_testing" InlineParams off InlineInvariantSignals on OptimizeBlockIOStorage on BufferReuse on EnforceIntegerDowncast on ExpressionFolding on FoldNonRolledExpr on LocalBlockOutputs on ParameterPooling on RollThreshold 5 SystemCodeInlineAuto off StateBitsets off DataBitsets off UseTempVars off ZeroExternalMemoryAtStartup on ZeroInternalMemoryAtStartup on InitFltsAndDblsToZero on NoFixptDivByZeroProtection off OptimizeModelRefInitCode off LifeSpan "inf" } Simulink.DebuggingCC { $ObjectID 5 Version "1.0.4" ConsistencyChecking "none" ArrayBoundsChecking "none" AlgebraicLoopMsg "warning" ArtificialAlgebraicLoopMsg "warning" CheckSSInitialOutputMsg on CheckExecutionContextPreStartOutputMsg off CheckExecutionContextRuntimeOutputMsg off SignalResolutionControl "TryResolveAllWithWarning" BlockPriorityViolationMsg "warning" MinStepSizeMsg "warning" SolverPrmCheckMsg "warning" InheritedTsInSrcMsg "warning" DiscreteInheritContinuousMsg "warning" MultiTaskRateTransMsg "error" SingleTaskRateTransMsg "none" TasksWithSamePriorityMsg "warning" CheckMatrixSingularityMsg "none" IntegerOverflowMsg "warning" Int32ToFloatConvMsg "warning" ParameterDowncastMsg "error" ParameterOverflowMsg "error" ParameterPrecisionLossMsg "warning" UnderSpecifiedDataTypeMsg "none" UnnecessaryDatatypeConvMsg "none" VectorMatrixConversionMsg "none" InvalidFcnCallConnMsg "error" SignalLabelMismatchMsg "none" UnconnectedInputMsg "warning" UnconnectedOutputMsg "warning" UnconnectedLineMsg "warning" SFcnCompatibilityMsg "none" UniqueDataStoreMsg "none" RootOutportRequireBusObject "warning" AssertControl "UseLocalSettings" EnableOverflowDetection off ModelReferenceIOMsg "none" ModelReferenceVersionMismatchMessage "none" ModelReferenceIOMismatchMessage "none" ModelReferenceCSMismatchMessage "none" ModelReferenceSimTargetVerbose off UnknownTsInhSupMsg "warning" ModelReferenceDataLoggingMessage "warning" ModelReferenceSymbolNameMessage "warning" } Simulink.HardwareCC { $ObjectID 6 Version "1.0.4" ProdBitPerChar 8 ProdBitPerShort 16 ProdBitPerInt 32 ProdBitPerLong 32 ProdIntDivRoundTo "Undefined" ProdEndianess "Unspecified" ProdWordSize 32 ProdShiftRightIntArith on ProdHWDeviceType "32-bit Generic" TargetBitPerChar 8 TargetBitPerShort 16 TargetBitPerInt 32 TargetBitPerLong 32 TargetShiftRightIntArith on TargetIntDivRoundTo "Undefined" TargetEndianess "Unspecified" TargetWordSize 32 TargetTypeEmulationWarnSuppressLevel 0 TargetPreprocMaxBitsSint 32 TargetPreprocMaxBitsUint 32 TargetHWDeviceType "Specified" TargetUnknown off ProdEqTarget on } Simulink.ModelReferenceCC { $ObjectID 7 Version "1.0.4" UpdateModelReferenceTargets "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.0.4" SystemTargetFile "grt.tlc" GenCodeOnly off MakeCommand "make_rtw" TemplateMakefile "grt_default_tmf" GenerateReport off SaveLog off RTWVerbose on RetainRTWFile off ProfileTLC off TLCDebug off TLCCoverage off TLCAssert off ProcessScriptMode "Default" ConfigurationMode "Optimized" ConfigAtBuild off IncludeHyperlinkInReport off LaunchReport off Array { Type "Handle" Dimension 2 Simulink.CodeAppCC { $ObjectID 9 Array { Type "Cell" Dimension 9 Cell "IgnoreCustomStorageClasses" Cell "InsertBlockDesc" Cell "SFDataObjDesc" Cell "SimulinkDataObjDesc" Cell "DefineNamingRule" Cell "SignalNamingRule" Cell "ParamNamingRule" Cell "InlinedPrmAccess" Cell "CustomSymbolStr" PropName "DisabledProps" } Version "1.0.4" ForceParamTrailComments off GenerateComments on IgnoreCustomStorageClasses on IncHierarchyInIds off MaxIdLength 31 PreserveName off PreserveNameWithParent off ShowEliminatedStatement off IncAutoGenComments off SimulinkDataObjDesc off SFDataObjDesc off IncDataTypeInIds off PrefixModelToSubsysFcnNames on CustomSymbolStr "$R$N$M" MangleLength 1 DefineNamingRule "None" ParamNamingRule "None" SignalNamingRule "None" InsertBlockDesc off SimulinkBlockComments on EnableCustomComments off InlinedPrmAccess "Literals" ReqsInCode off } Simulink.GRTTargetCC { $BackupClass "Simulink.TargetCC" $ObjectID 10 Array { Type "Cell" Dimension 12 Cell "IncludeMdlTerminateFcn" Cell "CombineOutputUpdateFcns" Cell "SuppressErrorStatus" Cell "ERTCustomFileBanners" Cell "GenerateSampleERTMain" Cell "MultiInstanceERTCode" Cell "PurelyIntegerCode" Cell "SupportNonFinite" Cell "SupportComplex" Cell "SupportAbsoluteTime" Cell "SupportContinuousTime" Cell "SupportNonInlinedSFcns" PropName "DisabledProps" } Version "1.0.4" TargetFcnLib "ansi_tfl_tmw.mat" GenFloatMathFcnCalls "ANSI_C" UtilityFuncGeneration "Auto" GenerateFullHeader on GenerateSampleERTMain off IsPILTarget off ModelReferenceCompliant on IncludeMdlTerminateFcn on CombineOutputUpdateFcns off SuppressErrorStatus off IncludeFileDelimiter "Auto" ERTCustomFileBanners off SupportAbsoluteTime on LogVarNameModifier "rt_" MatFileLogging on MultiInstanceERTCode off SupportNonFinite on SupportComplex on PurelyIntegerCode off SupportContinuousTime on SupportNonInlinedSFcns on ExtMode off ExtModeStaticAlloc off ExtModeTesting off ExtModeStaticAllocSize 1000000 ExtModeTransport 0 ExtModeMexFile "ext_comm" RTWCAPISignals off RTWCAPIParams off RTWCAPIStates off GenerateASAP2 off } PropName "Components" } } PropName "Components" } Name "Configuration" SimulationMode "normal" CurrentDlgPage "Solver" } PropName "ConfigurationSets" } Simulink.ConfigSet { $PropName "ActiveConfigurationSet" $ObjectID 1 } BlockDefaults { Orientation "right" ForegroundColor "black" BackgroundColor "white" DropShadow off NamePlacement "normal" FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" ShowName on } BlockParameterDefaults { Block { BlockType 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 BusObject "BusObject" BusOutputAsStruct off PortDimensions "-1" SampleTime "-1" DataType "auto" OutDataType "sfix(16)" OutScaling "2^0" SignalType "auto" SamplingMode "auto" Interpolate on } Block { BlockType Mux Inputs "4" DisplayOption "none" BusObject "BusObject" NonVirtualBus off } Block { BlockType Outport Port "1" BusObject "BusObject" BusOutputAsStruct off PortDimensions "-1" SampleTime "-1" DataType "auto" OutDataType "sfix(16)" OutScaling "2^0" SignalType "auto" SamplingMode "auto" OutputWhenDisabled "held" InitialOutput "[]" } Block { BlockType Scope Floating off 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 "0" } 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 TransferFcn Numerator "[1]" Denominator "[1 2 1]" AbsoluteTolerance "auto" Realization "auto" } } AnnotationDefaults { HorizontalAlignment "center" VerticalAlignment "middle" ForegroundColor "black" BackgroundColor "white" DropShadow off FontName "Helvetica" FontSize 10 FontWeight "normal" FontAngle "normal" } LineDefaults { FontName "Helvetica" FontSize 9 FontWeight "normal" FontAngle "normal" } System { Name "Topic13_PolePositioning" Location [420, 121, 908, 516] Open on ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" ReportName "simulink-default.rpt" Block { BlockType Sum Name "Add" Ports [2, 1] Position [105, 302, 130, 338] Inputs "+-" InputSameDT off OutDataTypeMode "Inherit via internal rule" OutScaling "2^-10" SaturateOnIntegerOverflow off } Block { BlockType SubSystem Name "Controller" Ports [1, 1] Position [160, 302, 200, 338] ForegroundColor "red" BackgroundColor "lightBlue" FontName "Arial" FontSize 14 FontWeight "bold" TreatAsAtomicUnit off MinAlgLoopOccurrences off RTWSystemCode "Auto" MaskDescription "PID controller with the form used in the \"Chem" "ical Process Control\" module:\n\nGc(s) = Kc(1 + s/tau_I + tau_D*s)\n\n(C) 20" "06 ZK Nagy, Loughborough " MaskHelp "PID controller with the form used in the \"Chem" "ical Process Control\" module:\n\nGc(s) = Kc(1 + s/tau_I + tau_D*s)\n\n(C) 20" "06 ZK Nagy, Loughborough " MaskPromptString "Proportional Gain (Kc)|Integral time (tau_I)|De" "rivative time (tau_D)" MaskStyleString "edit,edit,edit" MaskTunableValueString "on,on,on" MaskCallbackString "||" MaskEnableString "on,on,on" MaskVisibilityString "on,on,on" MaskToolTipString "on,on,on" MaskVarAliasString ",," MaskVariables "P=@1;I=@2;D=@3;" MaskDisplay "disp('PID'); " MaskIconFrame on MaskIconOpaque on MaskIconRotate "none" MaskIconUnits "autoscale" MaskValueString "0.5|1.333|0" MaskTabNameString ",," System { Name "Controller" Location [344, 411, 794, 652] Open off ModelBrowserVisibility off ModelBrowserWidth 200 ScreenColor "white" PaperOrientation "landscape" PaperPositionMode "auto" PaperType "A4" PaperUnits "centimeters" ZoomFactor "100" Block { BlockType Inport Name "In_1" Position [25, 60, 45, 80] Port "1" IconDisplay "Port number" LatchInput off } Block { BlockType Gain Name "D" Position [170, 124, 200, 146] Gain "D" } Block { BlockType Derivative Name "Derivative" Position [225, 123, 265, 147] } Block { BlockType TransferFcn Name "Integral" Position [215, 52, 250, 88] Denominator "[1 0]" } Block { BlockType Gain Name "Proportional" Position [70, 57, 105, 83] Gain "P" } Block { BlockType Gain Name "Proportional1" Position [135, 57, 170, 83] Gain "1/I" } Block { BlockType Sum Name "Sum" Ports [3, 1] Position [320, 52, 340, 88] Inputs "+++" } Block { BlockType Outport Name "Out_1" Position [365, 60, 385, 80] IconDisplay "Port number" BusOutputAsStruct off InitialOutput "0" } Line { SrcBlock "Proportional1" SrcPort 1 DstBlock "Integral" DstPort 1 } Line { SrcBlock "Proportional" SrcPort 1 Points [0, 0; 5, 0] Branch { Points [0, 65] DstBlock "D" DstPort 1 } Branch { Points [0, -40; 190, 0] DstBlock "Sum" DstPort 1 } Branch { DstBlock "Proportional1" DstPort 1 } } Line { SrcBlock "In_1" SrcPort 1 DstBlock "Proportional" DstPort 1 } Line { SrcBlock "D" SrcPort 1 DstBlock "Derivative" DstPort 1 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "Out_1" DstPort 1 } Line { SrcBlock "Derivative" SrcPort 1 Points [20, 0; 0, -55] DstBlock "Sum" DstPort 3 } Line { SrcBlock "Integral" SrcPort 1 DstBlock "Sum" DstPort 2 } Annotation { Name "(C) 2006, ZK Nagy" Position [124, 208] } } } Block { BlockType Mux Name "Mux" Ports [3, 1] Position [380, 186, 385, 224] ShowName off Inputs "3" DisplayOption "bar" } Block { BlockType Mux Name "Mux1" Ports [3, 1] Position [405, 291, 410, 329] ShowName off Inputs "3" DisplayOption "bar" } Block { BlockType Mux Name "Mux2" Ports [2, 1] Position [380, 66, 385, 104] ShowName off Inputs "2" DisplayOption "bar" } Block { BlockType Scope Name "Scope" Ports [1] Position [430, 189, 460, 221] Location [42, 81, 402, 349] Open on NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "50" YMin "0" YMax "1.4" DataFormat "StructureWithTime" } Block { BlockType Scope Name "Scope1" Ports [1] Position [430, 294, 460, 326] Location [37, 408, 408, 672] Open on NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "50" YMin "0" YMax "1.4" SaveName "ScopeData1" DataFormat "StructureWithTime" } Block { BlockType Scope Name "Scope2" Ports [1] Position [430, 69, 460, 101] Location [42, 81, 402, 349] Open on NumInputPorts "1" List { ListType AxesTitles axes1 "%" } TimeRange "50" YMin "0" YMax "1.4" SaveName "ScopeData2" DataFormat "StructureWithTime" } Block { BlockType Step Name "Step" Position [80, 190, 110, 220] SampleTime "0" } Block { BlockType Step Name "Step1" Position [30, 295, 60, 325] SampleTime "0" } Block { BlockType Step Name "Step2" Position [80, 80, 110, 110] SampleTime "0" } Block { BlockType TransferFcn Name "Transfer Fcn" Position [170, 182, 250, 228] Denominator "[16 4 1]" } Block { BlockType TransferFcn Name "Transfer Fcn1" Position [245, 297, 325, 343] Denominator "[6 1]" } Block { BlockType TransferFcn Name "Transfer Fcn2" Position [170, 72, 250, 118] Denominator "[6 1]" } Line { SrcBlock "Step" SrcPort 1 Points [0, 0; 15, 0] Branch { DstBlock "Transfer Fcn" DstPort 1 } Branch { Points [0, -35; 170, 0; 0, 25] DstBlock "Mux" DstPort 1 } } Line { SrcBlock "Transfer Fcn" SrcPort 1 Points [0, 0; 85, 0] Branch { DstBlock "Mux" DstPort 2 } Branch { Points [0, 105] DstBlock "Mux1" DstPort 2 } } Line { SrcBlock "Mux" SrcPort 1 DstBlock "Scope" DstPort 1 } Line { SrcBlock "Step1" SrcPort 1 Points [0, 0; 15, 0] Branch { DstBlock "Add" DstPort 1 } Branch { Points [0, -25; 310, 0] DstBlock "Mux1" DstPort 1 } } Line { SrcBlock "Transfer Fcn1" SrcPort 1 Points [0, 0; 15, 0] Branch { Points [0, 60; -270, 0; 0, -50] DstBlock "Add" DstPort 2 } Branch { DstBlock "Mux1" DstPort 3 } } Line { SrcBlock "Mux1" SrcPort 1 DstBlock "Scope1" DstPort 1 } Line { SrcBlock "Add" SrcPort 1 DstBlock "Controller" DstPort 1 } Line { SrcBlock "Controller" SrcPort 1 DstBlock "Transfer Fcn1" DstPort 1 } Line { SrcBlock "Step2" SrcPort 1 Points [0, 0; 15, 0] Branch { Points [0, -35; 170, 0; 0, 15] DstBlock "Mux2" DstPort 1 } Branch { DstBlock "Transfer Fcn2" DstPort 1 } } Line { SrcBlock "Transfer Fcn2" SrcPort 1 Points [0, 0; 100, 0] Branch { DstBlock "Mux2" DstPort 2 } Branch { Points [0, 120] DstBlock "Mux" DstPort 3 } } Line { SrcBlock "Mux2" SrcPort 1 DstBlock "Scope2" DstPort 1 } Annotation { Name "Solution of Example 2 from Topic 13 (PID tuning" ")" Position [261, 21] FontName "Arial Black" FontSize 12 } Annotation { Name "Step response --> Desired response trajectory a" "nd process" Position [159, 154] } Annotation { Name "Close loop performance" Position [84, 274] } Annotation { Name "Step response of process" Position [84, 44] } } }