1 # Copyright (C) 2010 Richard Lincoln
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # Lesser General Public License for more details.
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA, USA
17 from CIM14
.IEC61970
.Generation
.GenerationDynamics
.SteamSupply
import SteamSupply
19 class FossilSteamSupply(SteamSupply
):
20 """Fossil fueled boiler (e.g., coal, oil, gas)
23 def __init__(self
, boilerControlMode
="following", superHeater2Capacity
=0.0, auxPowerVersusFrequency
=0.0, feedWaterIG
=0.0, controlPED
=0.0, throttlePressureSP
=0.0, pressureCtrlIG
=0.0, fuelSupplyDelay
=0.0, controlPEB
=0.0, controlTC
=0.0, pressureFeedback
=0, feedWaterPG
=0.0, controlIC
=0.0, controlPC
=0.0, minErrorRateP
=0.0, fuelSupplyTC
=0.0, fuelDemandLimit
=0.0, mechPowerSensorLag
=0.0, pressureCtrlDG
=0.0, maxErrorRateP
=0.0, superHeaterPipePD
=0.0, controlErrorBiasP
=0.0, feedWaterTC
=0.0, superHeater1Capacity
=0.0, auxPowerVersusVoltage
=0.0, pressureCtrlPG
=0.0, *args
, **kw_args
):
24 """Initialises a new 'FossilSteamSupply' instance.
26 @param boilerControlMode: The control mode of the boiler Values are: "following", "coordinated"
27 @param superHeater2Capacity: Secondary Superheater Capacity
28 @param auxPowerVersusFrequency: Off nominal frequency effect on auxiliary real power. Per unit active power variation versus per unit frequency variation.
29 @param feedWaterIG: Feedwater Integral Gain ratio
30 @param controlPED: Pressure Error Deadband
31 @param throttlePressureSP: Throttle Pressure Setpoint
32 @param pressureCtrlIG: Pressure Control Integral Gain ratio
33 @param fuelSupplyDelay: Fuel Delay
34 @param controlPEB: Pressure Error Bias ratio
35 @param controlTC: Time Constant
36 @param pressureFeedback: Pressure Feedback Indicator
37 @param feedWaterPG: Feedwater Proportional Gain ratio
38 @param controlIC: Integral Constant
39 @param controlPC: Proportional Constant
40 @param minErrorRateP: Active power Minimum Error Rate Limit
41 @param fuelSupplyTC: Fuel Supply Time Constant
42 @param fuelDemandLimit: Fuel Demand Limit
43 @param mechPowerSensorLag: Mechanical Power Sensor Lag
44 @param pressureCtrlDG: Pressure Control Derivative Gain ratio
45 @param maxErrorRateP: Active power Maximum Error Rate Limit
46 @param superHeaterPipePD: Superheater Pipe Pressure Drop Constant
47 @param controlErrorBiasP: Active power Error Bias ratio
48 @param feedWaterTC: Feedwater Time Constant rato
49 @param superHeater1Capacity: Drum/Primary Superheater Capacity
50 @param auxPowerVersusVoltage: Off nominal voltage effect on auxiliary real power. Per unit active power variation versus per unit voltage variation.
51 @param pressureCtrlPG: Pressure Control Proportional Gain ratio
53 #: The control mode of the boiler Values are: "following", "coordinated"
54 self
.boilerControlMode
= boilerControlMode
56 #: Secondary Superheater Capacity
57 self
.superHeater2Capacity
= superHeater2Capacity
59 #: Off nominal frequency effect on auxiliary real power. Per unit active power variation versus per unit frequency variation.
60 self
.auxPowerVersusFrequency
= auxPowerVersusFrequency
62 #: Feedwater Integral Gain ratio
63 self
.feedWaterIG
= feedWaterIG
65 #: Pressure Error Deadband
66 self
.controlPED
= controlPED
68 #: Throttle Pressure Setpoint
69 self
.throttlePressureSP
= throttlePressureSP
71 #: Pressure Control Integral Gain ratio
72 self
.pressureCtrlIG
= pressureCtrlIG
75 self
.fuelSupplyDelay
= fuelSupplyDelay
77 #: Pressure Error Bias ratio
78 self
.controlPEB
= controlPEB
81 self
.controlTC
= controlTC
83 #: Pressure Feedback Indicator
84 self
.pressureFeedback
= pressureFeedback
86 #: Feedwater Proportional Gain ratio
87 self
.feedWaterPG
= feedWaterPG
90 self
.controlIC
= controlIC
92 #: Proportional Constant
93 self
.controlPC
= controlPC
95 #: Active power Minimum Error Rate Limit
96 self
.minErrorRateP
= minErrorRateP
98 #: Fuel Supply Time Constant
99 self
.fuelSupplyTC
= fuelSupplyTC
102 self
.fuelDemandLimit
= fuelDemandLimit
104 #: Mechanical Power Sensor Lag
105 self
.mechPowerSensorLag
= mechPowerSensorLag
107 #: Pressure Control Derivative Gain ratio
108 self
.pressureCtrlDG
= pressureCtrlDG
110 #: Active power Maximum Error Rate Limit
111 self
.maxErrorRateP
= maxErrorRateP
113 #: Superheater Pipe Pressure Drop Constant
114 self
.superHeaterPipePD
= superHeaterPipePD
116 #: Active power Error Bias ratio
117 self
.controlErrorBiasP
= controlErrorBiasP
119 #: Feedwater Time Constant rato
120 self
.feedWaterTC
= feedWaterTC
122 #: Drum/Primary Superheater Capacity
123 self
.superHeater1Capacity
= superHeater1Capacity
125 #: Off nominal voltage effect on auxiliary real power. Per unit active power variation versus per unit voltage variation.
126 self
.auxPowerVersusVoltage
= auxPowerVersusVoltage
128 #: Pressure Control Proportional Gain ratio
129 self
.pressureCtrlPG
= pressureCtrlPG
131 super(FossilSteamSupply
, self
).__init
__(*args
, **kw_args
)
133 _attrs
= ["boilerControlMode", "superHeater2Capacity", "auxPowerVersusFrequency", "feedWaterIG", "controlPED", "throttlePressureSP", "pressureCtrlIG", "fuelSupplyDelay", "controlPEB", "controlTC", "pressureFeedback", "feedWaterPG", "controlIC", "controlPC", "minErrorRateP", "fuelSupplyTC", "fuelDemandLimit", "mechPowerSensorLag", "pressureCtrlDG", "maxErrorRateP", "superHeaterPipePD", "controlErrorBiasP", "feedWaterTC", "superHeater1Capacity", "auxPowerVersusVoltage", "pressureCtrlPG"]
134 _attr_types
= {"boilerControlMode": str, "superHeater2Capacity": float, "auxPowerVersusFrequency": float, "feedWaterIG": float, "controlPED": float, "throttlePressureSP": float, "pressureCtrlIG": float, "fuelSupplyDelay": float, "controlPEB": float, "controlTC": float, "pressureFeedback": int, "feedWaterPG": float, "controlIC": float, "controlPC": float, "minErrorRateP": float, "fuelSupplyTC": float, "fuelDemandLimit": float, "mechPowerSensorLag": float, "pressureCtrlDG": float, "maxErrorRateP": float, "superHeaterPipePD": float, "controlErrorBiasP": float, "feedWaterTC": float, "superHeater1Capacity": float, "auxPowerVersusVoltage": float, "pressureCtrlPG": float}
135 _defaults
= {"boilerControlMode": "following", "superHeater2Capacity": 0.0, "auxPowerVersusFrequency": 0.0, "feedWaterIG": 0.0, "controlPED": 0.0, "throttlePressureSP": 0.0, "pressureCtrlIG": 0.0, "fuelSupplyDelay": 0.0, "controlPEB": 0.0, "controlTC": 0.0, "pressureFeedback": 0, "feedWaterPG": 0.0, "controlIC": 0.0, "controlPC": 0.0, "minErrorRateP": 0.0, "fuelSupplyTC": 0.0, "fuelDemandLimit": 0.0, "mechPowerSensorLag": 0.0, "pressureCtrlDG": 0.0, "maxErrorRateP": 0.0, "superHeaterPipePD": 0.0, "controlErrorBiasP": 0.0, "feedWaterTC": 0.0, "superHeater1Capacity": 0.0, "auxPowerVersusVoltage": 0.0, "pressureCtrlPG": 0.0}
136 _enums
= {"boilerControlMode": "BoilerControlMode"}