Model { Name "cpc_kiln" Version 2.00 SimParamPage Solver SampleTimeColors off WideVectorLines off PaperOrientation landscape StartTime "0.0" StopTime "200" Solver ode1 RelTol "1e-4" AbsTol "1e-6" Refine "1" MaxStep "auto" InitialStep "auto" FixedStep "0.2" MaxOrder 5 OutputOption RefineOutputTimes OutputTimes "[]" LoadExternalInput off ExternalInput "[t, u]" SaveTime off TimeSaveName "tout" SaveState off StateSaveName "xout" SaveOutput off OutputSaveName "yout" LoadInitialState off InitialState "xInitial" SaveFinalState off FinalStateName "xFinal" LimitMaxRows off MaxRows "1000" Decimation "1" AlgebraicLoopMsg warning MinStepSizeMsg warning UnconnectedInputMsg warning UnconnectedOutputMsg warning UnconnectedLineMsg warning ConsistencyChecking off ZeroCross on BlockDefaults { Orientation right ForegroundColor black BackgroundColor white DropShadow off NamePlacement normal FontName "Helvetica" FontSize 10 FontWeight normal FontAngle normal ShowName on } AnnotationDefaults { HorizontalAlignment center VerticalAlignment middle ForegroundColor black BackgroundColor white DropShadow off FontName "Helvetica" FontSize 10 FontWeight normal FontAngle normal } System { Name "cpc_kiln" Location [305, 94, 1005, 365] Open on ScreenColor white Block { BlockType ToWorkspace Name "\"back\" temperature" Position [440, 172, 490, 188] VariableName "T_bk" Buffer "5000" Decimation "1" SampleTime "0" } Block { BlockType ToWorkspace Name "\"front\" temperature" Position [430, 67, 480, 83] VariableName "T_fr" Buffer "5000" Decimation "1" SampleTime "0" } Block { BlockType Clock Name "Clock" Position [215, 40, 235, 60] DeleteFcn "simclock BlockIsBeingDestroyed" PostSaveFcn "simclock Save" Location [30, 40, 140, 75] } Block { BlockType SubSystem Name "Rotary Lime Kiln" Position [265, 105, 295, 160] ShowPortLabels off MaskType "Lime Kiln" MaskDescription "Rotary kiln for drying solids" MaskHelp "This block simulates the behavior of a rotary " "kiln (specifically, a lime kiln) used in " "industry for drying solids. Temperature control " "is of paramount importance here, and is achieved" " by manipulating fuel flowrate and damper " "position." MaskIconFrame on MaskIconOpaque on MaskIconRotate off MaskIconUnits autoscale System { Name "Rotary Lime Kiln" Location [90, 61, 739, 395] Open off ScreenColor white Block { BlockType Inport Name "in_1" Position [60, 100, 80, 120] Port "1" PortWidth "-1" SampleTime "-1" } Block { BlockType Inport Name "in_2" Position [60, 165, 80, 185] Port "2" PortWidth "-1" SampleTime "-1" } Block { BlockType SubSystem Name "Band-Limited\nWhite Noise" Position [340, 42, 385, 78] ShowName off ShowPortLabels off MaskType "Continuous White Noise." MaskDescription "White noise for continuous (s-domain) " "systems.\nBand-limited using zero-order-hold" "." MaskHelp "Implemented using white noise into Zero-Orde" "r Hold block. The seed and power can " "be vectors of the same length to produce " "a vector of white noise sources. For " "faster simulation, set sample time to " "the highest value possible but in accordance" " with the fastest dynamics of system." MaskPromptString "Noise Power:|Sample Time:|Seed" MaskStyleString "edit,edit,edit" MaskInitialization "Cov = @1; Ts = @2; seed = @3; r = rand(1,12)" "; r2 = [r(1),r;r,r(12)]; t =[1:13;1:13];" MaskDisplay "plot(t(:),r2(:))" MaskIconFrame on MaskIconOpaque on MaskIconRotate off MaskIconUnits autoscale MaskValueString "0.010|0.4|[23341]" System { Name "Band-Limited\nWhite Noise" Location [54, 341, 339, 470] Open off ScreenColor white Block { BlockType Gain Name "Gain" Position [155, 31, 195, 69] Gain "[sqrt(Cov)]/[sqrt(Ts)]" } Block { BlockType RandomNumber Name "White Noise" Position [25, 40, 45, 60] Seed "seed" } Block { BlockType ZeroOrderHold Name "Zero-Order\nHold" Position [85, 34, 120, 66] SampleTime "Ts" } Block { BlockType Outport Name "Out_1" Position [230, 40, 250, 60] Port "1" OutputWhenDisabled held InitialOutput "0" } Line { SrcBlock "White Noise" SrcPort 1 DstBlock "Zero-Order\nHold" DstPort 1 } Line { SrcBlock "Gain" SrcPort 1 DstBlock "Out_1" DstPort 1 } Line { SrcBlock "Zero-Order\nHold" SrcPort 1 DstBlock "Gain" DstPort 1 } } } Block { BlockType SubSystem Name "Band-Limited\nWhite Noise1" Position [340, 202, 385, 238] ShowName off ShowPortLabels off MaskType "Continuous White Noise." MaskDescription "White noise for continuous (s-domain) " "systems.\nBand-limited using zero-order-hold" "." MaskHelp "Implemented using white noise into Zero-Orde" "r Hold block. The seed and power can " "be vectors of the same length to produce " "a vector of white noise sources. For " "faster simulation, set sample time to " "the highest value possible but in accordance" " with the fastest dynamics of system." MaskPromptString "Noise Power:|Sample Time:|Seed" MaskStyleString "edit,edit,edit" MaskInitialization "Cov = @1; Ts = @2; seed = @3; r = rand(1,12)" "; r2 = [r(1),r;r,r(12)]; t =[1:13;1:13];" MaskDisplay "plot(t(:),r2(:))" MaskIconFrame on MaskIconOpaque on MaskIconRotate off MaskIconUnits autoscale MaskValueString "0.01|0.4|[23341]" System { Name "Band-Limited\nWhite Noise1" Location [54, 341, 339, 470] Open off ScreenColor white Block { BlockType Gain Name "Gain" Position [155, 31, 195, 69] Gain "[sqrt(Cov)]/[sqrt(Ts)]" } Block { BlockType RandomNumber Name "White Noise" Position [25, 40, 45, 60] Seed "seed" } Block { BlockType ZeroOrderHold Name "Zero-Order\nHold" Position [85, 34, 120, 66] SampleTime "Ts" } Block { BlockType Outport Name "Out_1" Position [230, 40, 250, 60] Port "1" OutputWhenDisabled held InitialOutput "0" } Line { SrcBlock "Zero-Order\nHold" SrcPort 1 DstBlock "Gain" DstPort 1 } Line { SrcBlock "Gain" SrcPort 1 DstBlock "Out_1" DstPort 1 } Line { SrcBlock "White Noise" SrcPort 1 DstBlock "Zero-Order\nHold" DstPort 1 } } } Block { BlockType Constant Name "Constant" Position [340, 87, 380, 113] NamePlacement alternate ShowName off Value "2225" } Block { BlockType Constant Name "Constant1" Position [340, 167, 380, 193] ShowName off Value "425" } Block { BlockType Constant Name "Constant2" Position [45, 37, 85, 63] NamePlacement alternate ShowName off Value "0.5" } Block { BlockType Constant Name "Constant3" Position [45, 227, 85, 253] NamePlacement alternate ShowName off Value "0.5" } Block { BlockType Demux Name "D" Position [335, 120, 380, 160] ShowName off Outputs "2" } Block { BlockType Mux Name "Mux" Position [200, 121, 230, 154] ShowName off Inputs "2" } Block { BlockType S-Function Name "S-Function" Position [245, 120, 310, 160] FunctionName "kiln_code" } Block { BlockType Sum Name "Sum" Position [445, 102, 465, 138] Inputs "+++" } Block { BlockType Sum Name "Sum1" Position [445, 172, 465, 208] Inputs "+++" } Block { BlockType Sum Name "Sum2" Position [125, 82, 140, 118] Inputs "-+" } Block { BlockType Sum Name "Sum3" Position [125, 167, 140, 203] Inputs "+-" } Block { BlockType Outport Name "Outport" Position [530, 110, 550, 130] Port "1" OutputWhenDisabled held InitialOutput "0" } Block { BlockType Outport Name "Outport1" Position [530, 180, 550, 200] Port "2" OutputWhenDisabled held InitialOutput "0" } Line { SrcBlock "Band-Limited\nWhite Noise1" SrcPort 1 Points [25, 0; 0, -20] DstBlock "Sum1" DstPort 3 } Line { SrcBlock "Band-Limited\nWhite Noise" SrcPort 1 Points [30, 0; 0, 50] DstBlock "Sum" DstPort 1 } Line { SrcBlock "S-Function" SrcPort 1 DstBlock "D" DstPort 1 } Line { SrcBlock "Mux" SrcPort 1 DstBlock "S-Function" DstPort 1 } Line { SrcBlock "Constant" SrcPort 1 Points [20, 0; 0, 20] DstBlock "Sum" DstPort 2 } Line { SrcBlock "D" SrcPort 1 DstBlock "Sum" DstPort 3 } Line { SrcBlock "D" SrcPort 2 Points [45, 0] DstBlock "Sum1" DstPort 1 } Line { SrcBlock "Constant1" SrcPort 1 Points [20, 0; 0, 10] DstBlock "Sum1" DstPort 2 } Line { SrcBlock "Sum" SrcPort 1 DstBlock "Outport" DstPort 1 } Line { SrcBlock "Sum1" SrcPort 1 DstBlock "Outport1" DstPort 1 } Line { SrcBlock "in_1" SrcPort 1 DstBlock "Sum2" DstPort 2 } Line { SrcBlock "Sum2" SrcPort 1 Points [20, 0; 0, 30] DstBlock "Mux" DstPort 1 } Line { SrcBlock "Constant2" SrcPort 1 Points [10, 0; 0, 40] DstBlock "Sum2" DstPort 1 } Line { SrcBlock "in_2" SrcPort 1 DstBlock "Sum3" DstPort 1 } Line { SrcBlock "Sum3" SrcPort 1 Points [20, 0; 0, -40] DstBlock "Mux" DstPort 2 } Line { SrcBlock "Constant3" SrcPort 1 Points [10, 0; 0, -45] DstBlock "Sum3" DstPort 2 } Annotation { Position [247, 67] VerticalAlignment top Text "DIDN'T I SAY NOT\nTO LOOK IN HERE!!" } } } Block { BlockType ToWorkspace Name "To Workspace" Position [310, 38, 335, 62] VariableName "t" Buffer "5000" Decimation "1" SampleTime "0" } Block { BlockType Step Name "damper position" Position [120, 175, 140, 195] Time "1" Before "0.5" After "0.5" } Block { BlockType Step Name "fuel flowrate" Position [120, 80, 140, 100] Time "1" Before "0.5" After "0.5" } Line { SrcBlock "fuel flowrate" SrcPort 1 Points [75, 0; 0, 30] DstBlock "Rotary Lime Kiln" DstPort 1 } Line { SrcBlock "damper position" SrcPort 1 Points [75, 0; 0, -40] DstBlock "Rotary Lime Kiln" DstPort 2 } Line { SrcBlock "Rotary Lime Kiln" SrcPort 1 Points [115, 0] DstBlock "\"front\" temperature" DstPort 1 } Line { SrcBlock "Rotary Lime Kiln" SrcPort 2 Points [125, 0] DstBlock "\"back\" temperature" DstPort 1 } Line { SrcBlock "Clock" SrcPort 1 DstBlock "To Workspace" DstPort 1 } } }