我已经在 OpenModelica 的 ThermoPower 库中工作了一段时间,现在尝试通过首先对 Brayton 和 Rankine Power Cycles 进行建模来构建组合的 Power Cycle。
每次我尝试使用泵时,我总是收到如下错误:
[1] 10:31:00 Translation Error
[ThermoPower.Examples: 2523:70-2523:81]: Variable q_nom not found in scope ThermoPower.Examples.RankineCycle.Models.
[2] 10:31:00 Translation Error
[ThermoPower.Examples: 2531:21-2531:69]: Cyclically dependent constants or parameters found in scope : {q_nom}, {head_nom} (ignore with -d=ignoreCycles).
选择的任何泵都将始终为我的模型声明这些错误。我尝试了许多不同类型的解决方案,但都没有成功。
我尝试使用矢量格式声明泵组件参数的值,即:
q_nom = {1,1,1}
。尝试模拟时会弹出相同的错误。我尝试直接单击错误只是为了重定向到 ThermoPower.PowerPlants。在这里,我指向一行代码:
函数 flowCharacteristic = ThermoPower.Functions.PumpCharacteristics.quadraticFlow (q_nom= q_nom, head_nom=head_nom);
在这里,我尝试手动输入 q_nom 和 head_nom 的值,但没有成功。我还尝试在模型顶部复制上面的代码行,试图“重新声明”函数flowCharacteristic
。这只会导致错误地重新声明不可声明的类。
我尝试了其他解决方案,但没有成功。
如果您对如何解决此问题有任何建议,请随时在下面留下您的意见!
更新:
这是我已经研究了一段时间的模型的代码。
模型Rankine_HRSG
ThermoPower.PowerPlants.HRSG.Components.HE Superheater(
Cfnom_F = 0,
Cfnom_G = 0,
FFtype_F = ThermoPower.Choices.Flow1D.FFtypes.NoFriction,
FFtype_G = ThermoPower.Choices.Flow1D.FFtypes.NoFriction,
FluidPhaseStart = ThermoPower.Choices.FluidPhase.FluidPhases.Steam,
HCtype_F = ThermoPower.Choices.Flow1D.HCtypes.Downstream,
Kfnom_F = 0,
Kfnom_G = 0,
N_F = 2,
N_G = 2,
Nt = 1,
Tstartbar_G = 1073.15,
dpnom_F = 0,
dpnom_G = 0,
exchSurface_F = 10,
exchSurface_G = 10,
extSurfaceTub = 20,
fluidNomFlowRate = 50,
fluidNomPressure = 1e+06,
fluidVol = 10,
gasNomFlowRate = 102,
gasNomPressure = 101325,
gasQuasiStatic = false,
gasVol = 10,
lambda = 366,
metalVol = 10,
pstart_F = 5e+06,
pstart_G = 101325,
rhonom_F = 1000,
rhonom_G = 0.33)
annotation(
Placement(visible = true, transformation(origin = {50, 50}, extent =
{{-10, -10}, {10, 10}}, rotation = 180)));
ThermoPower.PowerPlants.HRSG.Components.HE Economizer(
Cfnom_F = 0,
Cfnom_G = 0,
FFtype_F = ThermoPower.Choices.Flow1D.FFtypes.NoFriction,
FFtype_G = ThermoPower.Choices.Flow1D.FFtypes.NoFriction,
FluidPhaseStart = ThermoPower.Choices.FluidPhase.FluidPhases.Liquid,
HCtype_F = ThermoPower.Choices.Flow1D.HCtypes.Downstream,
Kfnom_F = 0,
Kfnom_G = 0,
N_F = 2,
N_G = 2,
Nt = 1,
Tstartbar_G = 1023.15,
dpnom_F = 0,
dpnom_G = 0,
exchSurface_F = 10,
exchSurface_G = 10,
extSurfaceTub = 20,
fluidNomFlowRate = 50,
fluidNomPressure = 1e+06,
fluidVol = 10,
gasNomFlowRate = 102,
gasNomPressure = 101325,
gasVol = 10,
lambda = 366,
metalVol = 10,
pstart_F = 5e+06,
pstart_G = 101325,
rhonom_F = 1000,
rhonom_G = 0.33)
annotation(
Placement(visible = true, transformation(origin = {50, -50}, extent =
{{-10, -10}, {10, 10}}, rotation = 180)));
ThermoPower.Examples.HRB.Models.Evaporator Evaporator(
Cfnom_G = 0,
FFtype_G = ThermoPower.Choices.Flow1D.FFtypes.NoFriction,
Kfnom_G = 0,
N = 2,
Tstart = 1048.15,
cm = 376.812,
dpnom_G = 0,
exchSurface = 10,
fluidNomFlowRate = 50,
fluidNomPressure = 1e+06,
fluidVol = 10,
gamma = 300,
gasNomFlowRate = 102,
gasNomPressure = 101325,
gasVol = 10,
metalVol = 10,
rhom = 8400,
rhonom_G = 0.33)
annotation(
Placement(visible = true, transformation(origin = {50, 0}, extent = {{-10,
-10}, {10, 10}}, rotation = 180)));
ThermoPower.Gas.SourcePressure FlueGasSource(
redeclare package Medium = ThermoPower.Media.FlueGas,
R = 0,
T = 800,
p0 = 101325)
annotation(
Placement(visible = true, transformation(origin = {94, 50}, extent =
{{-10, -10}, {10, 10}}, rotation = 180)));
ThermoPower.Gas.SinkPressure FlueGasSink(
redeclare package Medium = ThermoPower.Media.FlueGas,
R = 0,
T = 700,
p0 = 101325)
annotation(
Placement(visible = true, transformation(origin = {10, -50}, extent =
{{-10, -10}, {10, 10}}, rotation = 180)));
ThermoPower.Water.SteamTurbineStodola SteamTurbine(
PRstart = 1,
eta_iso_nom = 0.92,
explicitIsentropicEnthalpy = true,
partialArc_nom = 1,
pnom = 10e5,
wnom = 50,
wstart = 50)
annotation(
Placement(visible = true, transformation(origin = {0, 80}, extent = {{-10,
-10}, {10, 10}}, rotation = 180)));
ThermoPower.Examples.RankineCycle.Models.PrescribedPressureCondenser
Condenser(
Vtot = 10,
p = 1e+06)
annotation(
Placement(visible = true, transformation(origin = {-50, 30}, extent =
{{-10, -10}, {10, 10}}, rotation = 0)));
ThermoPower.Water.Pump Pump(
CheckValve = true,Np0 = 1,
V = 10,
dp0 = 0, head(start = 1),
hstart = 1e5,
n0 = 150,
n_const = 150, q_single(fixed = false), rho0 = 1000,
w0 = 50,
w_single(fixed = false),
wstart = 50)
annotation(
Placement(visible = true, transformation(origin = {-38, -12}, extent =
{{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Mechanics.Rotational.Sensors.PowerSensor PowerSensor annotation(
Placement(visible = true, transformation(origin = {-38, 68}, extent =
{{-10, -10}, {10, 10}}, rotation = 180)));
ThermoPower.Electrical.Generator Generator annotation(
Placement(visible = true, transformation(origin = {-68, 68}, extent =
{{-10, -10}, {10, 10}}, rotation = 180)));
Modelica.Blocks.Continuous.FirstOrder firstOrder1 annotation(
Placement(visible = true, transformation(origin = {-50, 92}, extent =
{{-8, -8}, {8, 8}}, rotation = 180)));
Modelica.Blocks.Interfaces.RealOutput Power annotation(
Placement(visible = true, transformation(origin = {-110, 0}, extent =
{{-10, -10}, {10, 10}}, rotation = 180), iconTransformation(origin =
{-110, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 180)));
inner ThermoPower.System system annotation(
Placement(visible = true, transformation(origin = {90, 90}, extent =
{{-10, -10}, {10, 10}}, rotation = 0)));
equation
connect(PowerSensor.flange_b, Generator.shaft) annotation(
Line(points = {{-48, 68}, {-59, 68}}));
connect(SteamTurbine.shaft_b, PowerSensor.flange_a) annotation(
Line(points = {{-6, 80}, {-14, 80}, {-14, 68}, {-28, 68}}));
connect(SteamTurbine.outlet, Condenser.steamIn) annotation(
Line(points = {{-8, 72}, {-8, 52}, {-50, 52}, {-50, 40}}, color = {0, 0,
255}));
connect(Superheater.waterOut, SteamTurbine.inlet) annotation(
Line(points = {{50, 60}, {50, 64}, {8, 64}, {8, 72}}, color = {0, 0,
255}));
connect(Evaporator.waterOut, Superheater.waterIn) annotation(
Line(points = {{50, 10}, {50, 10}, {50, 40}, {50, 40}}, color = {0, 0,
255}));
connect(Economizer.waterOut, Evaporator.waterIn) annotation(
Line(points = {{50, -40}, {50, -40}, {50, -10}, {50, -10}}, color = {0, 0,
255}));
connect(firstOrder1.y, Power) annotation(
Line(points = {{-58, 92}, {-90, 92}, {-90, 0}, {-102, 0}, {-102, 0},
{-110, 0}}, color = {0, 0, 127}));
connect(PowerSensor.power, firstOrder1.u) annotation(
Line(points = {{-30, 80}, {-30, 80}, {-30, 92}, {-40, 92}, {-40, 92},
{-40, 92}}, color = {0, 0, 127}));
connect(Condenser.waterOut, Pump.infl) annotation(
Line(points = {{-50, 20}, {-50, -10}, {-46, -10}}, color = {0, 0, 255}));
connect(Pump.outfl, Economizer.waterIn) annotation(
Line(points = {{-32, -4}, {-26, -4}, {-26, -80}, {50, -80}, {50, -60},
{50, -60}}, color = {0, 0, 255}));
connect(Economizer.gasOut, FlueGasSink.flange) annotation(
Line(points = {{40, -50}, {20, -50}, {20, -50}, {20, -50}}, color = {159,
159, 223}));
connect(Superheater.gasOut, Evaporator.gasIn) annotation(
Line(points = {{40, 50}, {20, 50}, {20, 30}, {80, 30}, {80, 0}, {60, 0}},
color = {159, 159, 223}));
connect(Evaporator.gasOut, Economizer.gasIn) annotation(
Line(points = {{40, 0}, {20, 0}, {20, -26}, {20, -26}, {20, -30}, {80,
-30}, {80, -50}, {60, -50}, {60, -50}}, color = {159, 159, 223}));
connect(FlueGasSource.flange, Superheater.gasIn) annotation(
Line(points = {{84, 50}, {60, 50}, {60, 50}, {60, 50}}, color = {159, 159,
223}));
annotation(
uses(ThermoPower(version = "3.1"), Modelica(version = "3.2.2")));end
Rankine_HRSG;