Skip to content

Commit 0258ddc

Browse files
authored
Added opening fault to the Slide Valve component (#356)
* Added opening fault to the Slide Valve component Signed-off-by: Nabil Youssef <[email protected]> * Update CHANGELOG.md * Correction of the slide vale fault so it won't be a breaking change Signed-off-by: Nabil Youssef <[email protected]> * Updated CHANGELOG Signed-off-by: Nabil Youssef <[email protected]> * Changed fault parameter in slide valve Signed-off-by: Nabil Youssef <[email protected]> * Deleted useless info in the control valve component Signed-off-by: Nabil Youssef <[email protected]> Signed-off-by: Nabil Youssef <[email protected]>
1 parent ef05ddc commit 0258ddc

File tree

6 files changed

+57
-41
lines changed

6 files changed

+57
-41
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Added
1111
[PR#355](https://github.com/Metroscope-dev/metroscope-modeling-library/pull/355) added `PressureCut` and `Leak` components for the flue gases medium.
1212

13+
[PR#356](https://github.com/Metroscope-dev/metroscope-modeling-library/pull/356) Added an `opening_fault` in the `SlideValve` component to model slight decrease in the valve opening.
14+
1315
### Changed
1416

1517
### Fixed

MetroscopeModelingLibrary/Examples/CCGT/MetroscopiaCCGT/MetroscopiaCCGT_faulty.mo

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,30 @@ model MetroscopiaCCGT_faulty "Metroscopia CCGT faulty"
77
HPsuperheater2(faulty=true),
88
Reheater(faulty=true),
99
evaporator(faulty=true),
10-
economiser(faulty=true));
10+
economiser(faulty=true),
11+
HPST_control_valve(faulty=true));
1112

12-
//Heat exchangers failures
13-
input Real Reheater_fouling(start=0);
14-
input Real evaporator_fouling(start=0);
15-
input Real HPsuperheater1_fouling(start=0);
16-
input Real HPsuperheater2_fouling(start=0);
17-
input Real economiser_fouling(start=0);
18-
input Real condenser_fouling(start=0);
19-
input Real condenser_air_intake(start=0);
13+
// Heat exchangers failures
14+
input Real Failure_Reheater_fouling(start=0);
15+
input Real Failure_evaporator_fouling(start=0);
16+
input Real Failure_HPsuperheater1_fouling(start=0);
17+
input Real Failure_HPsuperheater2_fouling(start=0);
18+
input Real Failure_economiser_fouling(start=0);
19+
input Real Failure_condenser_fouling(start=0);
20+
input Real Failure_condenser_air_intake(start=0);
2021

21-
//Leaks
22-
input Real bypass_HP_turbine_to_condenser_leak_Q(start=0);
23-
input Real bypass_HP_CV_to_condenser_leak_Q(start=0);
24-
input Real bypass_IP_turbine_to_condenser_leak_Q(start=0);
25-
input Real bypass_IP_CV_to_condenser_leak_Q(start=0);
26-
input Real deSH_controlValve_leak_Q(start=0);
22+
// Leaks
23+
input Real Failure_bypass_HP_turbine_to_condenser_leak_Q(start=0);
24+
input Real Failure_bypass_HP_CV_to_condenser_leak_Q(start=0);
25+
input Real Failure_bypass_IP_turbine_to_condenser_leak_Q(start=0);
26+
input Real Failure_bypass_IP_CV_to_condenser_leak_Q(start=0);
27+
input Real Failure_deSH_controlValve_leak_Q(start=0);
2728

28-
//Gas turbine failures
29-
input Real AirFilter_fouling;
29+
// Gas turbine failures
30+
input Real Failure_AirFilter_fouling;
31+
32+
// Steam turbine
33+
input Real Failure_HPST_CV_closed_valve(start=0);
3034

3135
MetroscopeModelingLibrary.WaterSteam.Pipes.Leak bypass_HP_turbine_to_condenser_leak
3236
annotation (Placement(transformation(
@@ -56,28 +60,29 @@ model MetroscopiaCCGT_faulty "Metroscopia CCGT faulty"
5660
equation
5761

5862
//Condenser
59-
condenser.fouling=condenser_fouling;
60-
condenser.air_intake=condenser_air_intake;
63+
condenser.fouling = Failure_condenser_fouling;
64+
condenser.air_intake = Failure_condenser_air_intake;
6165

6266
//Reheater
63-
Reheater.fouling=Reheater_fouling;
64-
evaporator.fouling=evaporator_fouling;
67+
Reheater.fouling = Failure_Reheater_fouling;
68+
evaporator.fouling = Failure_evaporator_fouling;
6569
//economiser
66-
economiser.fouling=economiser_fouling;
70+
economiser.fouling = Failure_economiser_fouling;
6771

6872
//Superheater
69-
HPsuperheater1.fouling=HPsuperheater1_fouling;
70-
HPsuperheater2.fouling=HPsuperheater2_fouling;
71-
deSH_controlValve_leak.Q = deSH_controlValve_leak_Q + 1E-3;
73+
HPsuperheater1.fouling = Failure_HPsuperheater1_fouling;
74+
HPsuperheater2.fouling = Failure_HPsuperheater2_fouling;
75+
deSH_controlValve_leak.Q = Failure_deSH_controlValve_leak_Q + 1E-3;
7276

7377
//Steam Turbines
74-
bypass_HP_turbine_to_condenser_leak.Q=bypass_HP_turbine_to_condenser_leak_Q+1E-3;
75-
bypass_HP_CV_to_condenser_leak.Q=bypass_HP_CV_to_condenser_leak_Q+1E-3;
76-
bypass_IP_turbine_to_condenser_leak.Q=bypass_IP_turbine_to_condenser_leak_Q+1E-3;
77-
bypass_IP_CV_to_condenser_leak.Q=bypass_IP_CV_to_condenser_leak_Q+1E-3;
78+
bypass_HP_turbine_to_condenser_leak.Q = Failure_bypass_HP_turbine_to_condenser_leak_Q+1E-3;
79+
bypass_HP_CV_to_condenser_leak.Q = Failure_bypass_HP_CV_to_condenser_leak_Q+1E-3;
80+
bypass_IP_turbine_to_condenser_leak.Q = Failure_bypass_IP_turbine_to_condenser_leak_Q+1E-3;
81+
bypass_IP_CV_to_condenser_leak.Q = Failure_bypass_IP_CV_to_condenser_leak_Q+1E-3;
82+
HPST_control_valve.closed_valve = Failure_HPST_CV_closed_valve;
7883

7984
//Gas turbine
80-
AirFilter.fouling=AirFilter_fouling;
85+
AirFilter.fouling = Failure_AirFilter_fouling;
8186

8287
connect(P_HPST_in_sensor.C_in, HPST_control_valve.C_out) annotation (Line(
8388
points={{-180,148},{-183.375,148},{-183.375,148},{-186.75,148}}, color={

MetroscopeModelingLibrary/Partial/Pipes/ControlValve.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ partial model ControlValve
55
import MetroscopeModelingLibrary.Units.Inputs;
66
import MetroscopeModelingLibrary.Constants;
77

8-
Inputs.InputCv Cvmax(start=1e4) "Maximum CV (active if mode_caract=0)";
8+
Inputs.InputCv Cvmax(start=1e4) "Maximum CV";
99
Units.Cv Cv(start=1e4) "Cv";
1010
Modelica.Blocks.Interfaces.RealInput Opening(unit="1", min=0., max=1., nominal=0.5) annotation (Placement(
1111
transformation(extent={{-20,-20},{20,20}},

MetroscopeModelingLibrary/Partial/Pipes/SlideValve.mo

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,18 @@ partial model SlideValve
77

88
Inputs.InputCv Cv(start=1e4) "Cv of the valve";
99

10+
parameter Boolean faulty = false;
11+
Real closed_valve; // Valve not fully opened
12+
1013
equation
14+
// Failure modes
15+
if not faulty then
16+
closed_valve = 0;
17+
end if;
18+
1119
/* Pressure loss */
12-
DP*Cv*abs(Cv) = -1.733e12*Q^2/rho^2;
20+
DP*(1 - closed_valve)^2*Cv*abs(Cv) = -1.733e12*Q^2/rho^2;
21+
1322

1423
annotation (
1524
Icon(coordinateSystem(

MetroscopeModelingLibrary/Tests/WaterSteam/Pipes/SlideValve_direct.mo

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ model SlideValve_direct
2323
rotation=0,
2424
origin={58,-6.10623e-16})));
2525

26-
MetroscopeModelingLibrary.WaterSteam.Pipes.SlideValve control_valve annotation (Placement(transformation(extent={{-16.5,-5.93938},{16.5,26.7272}})));
26+
MetroscopeModelingLibrary.WaterSteam.Pipes.SlideValve slide_valve annotation (Placement(transformation(extent={{-16.5,-5.93938},{16.5,26.7272}})));
2727

2828
equation
2929
// Boundary conditions
@@ -32,8 +32,8 @@ equation
3232
source.Q_out = source_Q;
3333

3434
// Calibrated Parameters
35-
control_valve.Cv = Cv;
35+
slide_valve.Cv = Cv;
3636

37-
connect(control_valve.C_in, source.C_out) annotation (Line(points={{-16.5,-1.81818e-06},{-34.75,-1.81818e-06},{-34.75,0},{-53,0}},color={28,108,200}));
38-
connect(control_valve.C_out, sink.C_in) annotation (Line(points={{16.5,-1.81818e-06},{34.75,-1.81818e-06},{34.75,0},{53,0}}, color={28,108,200}));
37+
connect(slide_valve.C_in, source.C_out) annotation (Line(points={{-16.5,-1.81818e-06},{-34.75,-1.81818e-06},{-34.75,0},{-53,0}}, color={28,108,200}));
38+
connect(slide_valve.C_out, sink.C_in) annotation (Line(points={{16.5,-1.81818e-06},{34.75,-1.81818e-06},{34.75,0},{53,0}}, color={28,108,200}));
3939
end SlideValve_direct;

MetroscopeModelingLibrary/Tests/WaterSteam/Pipes/SlideValve_reverse.mo

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ model SlideValve_reverse
1717
input Units.Pressure outlet_pressure(start=9e5) "Pa";
1818

1919
// Calibrated parameter
20-
output Units.Cv Cv "Cvmax";
20+
output Units.Cv Cv "Cv";
2121

2222
// Components
2323
.MetroscopeModelingLibrary.WaterSteam.BoundaryConditions.Source source annotation (Placement(transformation(extent={{-68,-9.99996},{-48,9.99996}})));
@@ -26,7 +26,7 @@ model SlideValve_reverse
2626
rotation=0,
2727
origin={58,-6.10623e-16})));
2828

29-
MetroscopeModelingLibrary.WaterSteam.Pipes.SlideValve control_valve annotation (Placement(transformation(extent={{-16.5,-5.93938},{16.5,26.7272}})));
29+
MetroscopeModelingLibrary.WaterSteam.Pipes.SlideValve slide_valve annotation (Placement(transformation(extent={{-16.5,-5.93938},{16.5,26.7272}})));
3030

3131
MetroscopeModelingLibrary.Sensors.WaterSteam.PressureSensor outlet_pressure_sensor annotation (Placement(transformation(extent={{26,-10},{46,10}})));
3232
equation
@@ -39,9 +39,9 @@ equation
3939
outlet_pressure_sensor.P = outlet_pressure;
4040

4141
// Calibrated Parameters
42-
control_valve.Cv = Cv;
42+
slide_valve.Cv = Cv;
4343

44-
connect(control_valve.C_in, source.C_out) annotation (Line(points={{-16.5,-1.81818e-06},{-34.75,-1.81818e-06},{-34.75,0},{-53,0}},color={28,108,200}));
45-
connect(control_valve.C_out, outlet_pressure_sensor.C_in) annotation (Line(points={{16.5,-1.81818e-06},{22,-1.81818e-06},{22,0},{26,0}}, color={28,108,200}));
44+
connect(slide_valve.C_in, source.C_out) annotation (Line(points={{-16.5,-1.81818e-06},{-34.75,-1.81818e-06},{-34.75,0},{-53,0}}, color={28,108,200}));
45+
connect(slide_valve.C_out, outlet_pressure_sensor.C_in) annotation (Line(points={{16.5,-1.81818e-06},{22,-1.81818e-06},{22,0},{26,0}}, color={28,108,200}));
4646
connect(sink.C_in, outlet_pressure_sensor.C_out) annotation (Line(points={{53,0},{46,0}}, color={28,108,200}));
4747
end SlideValve_reverse;

0 commit comments

Comments
 (0)