首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使Modelica标准库中的泵工作

无法使Modelica标准库中的泵工作
EN

Stack Overflow用户
提问于 2019-05-17 12:20:01
回答 1查看 246关注 0票数 3

我想通过抽水系统(Pompa)从一个水源(Pozzetto)中抽取水来填充一个开放的水箱(bacinella2)。这个问题很简单,但我不能在openmodelica中实现。

我试图消除泵,直接连接两个管道tubo1和tubo2,并且系统工作,这就是为什么我认为bug在泵对象中。

代码语言:javascript
复制
model Pompaggio


Modelica.Fluid.Machines.ControlledPump Pompa(
    redeclare package Medium = Modelica.Media.Water.StandardWater,
    //N_nominal=1500,
    use_T_start=true,
    T_start=Modelica.SIunits.Conversions.from_degC(40),
    m_flow_start=0.1,
    control_m_flow=true,
    allowFlowReversal=false,
    p_a_start=110000,
    p_b_start=130000,
    p_a_nominal=110000,
    p_b_nominal=130000,
    m_flow_nominal=0.1
    );


  Modelica.Fluid.Sources.Boundary_pT Pozzetto(redeclare package Medium = Modelica.Media.Water.StandardWater,
    nPorts = 1, T=Modelica.SIunits.Conversions.from_degC(40), p = 101325  );

  Modelica.Fluid.Vessels.OpenTank bacinella2(redeclare package Medium = Modelica.Media.Water.StandardWater,
    crossArea = 4, height = 100, level(start = 0.01), nPorts = 1,
    portsData = {Modelica.Fluid.Vessels.BaseClasses.VesselPortsData(diameter = 0.1)}, use_portsData = true);

  Modelica.Fluid.Pipes.StaticPipe tubo1(redeclare package Medium = Modelica.Media.Water.StandardWater,
    allowFlowReversal = true, diameter = 0.1, height_ab = 0, isCircular = true, length = 200, nParallel = 1);

  Modelica.Fluid.Pipes.StaticPipe tubo2(redeclare package Medium = Modelica.Media.Water.StandardWater,
    allowFlowReversal = true, diameter = 0.1, height_ab = 0, isCircular = true, length = 200, nParallel = 1);

equation
  connect(Pozzetto.ports[1], tubo1.port_a);
  connect(Pompa.port_a, tubo1.port_b);
  connect(Pompa.port_b, tubo2.port_a);
  //connect( tubo1.port_b, tubo2.port_a);
  connect(bacinella2.ports[1], tubo2.port_b);


end Pompaggio;

有人能帮我吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-20 08:51:46

模型的工作原理是在Dymola。给出了一些在OpenModelica中解决问题的警告。这个模型实际上有两个“问题”:

  1. bacinella2的启动值:将值设置为T_start(start=293.15)ports(p(start={101422.89174430574})))避免在介质中发出低压警告。但实际上,这并不能解决翻译过程中出现的原始模型问题。
  2. stateSelectPompa.medium中的设置。Dymola输出警告,它将设置从StateSelect.prefer更改为StateSelect.default,因为它们无法区分。这是为Pompa.medium.hPompa.medium.p完成的。OpenModelica似乎无法自动完成这一任务,因此手动更改它似乎是必要的。

下面的代码是您的示例的扩展,上面提到了两个更改。它在OpenModelica 1.13.2 (64位)中进行测试,运行良好.

代码语言:javascript
复制
model Pompaggio_modified

Modelica.Fluid.Machines.ControlledPump Pompa(
    redeclare package Medium = Modelica.Media.Water.StandardWater,
    medium(h(stateSelect = StateSelect.default), p(stateSelect = StateSelect.default)),
    use_T_start=true,
    T_start=Modelica.SIunits.Conversions.from_degC(40),
    m_flow_start=0.1,
    control_m_flow=true,
    allowFlowReversal=false,
    p_a_start=110000,
    p_b_start=130000,
    p_a_nominal=110000,
    p_b_nominal=130000,
    m_flow_nominal=0.1);
    //N_nominal=1500,

  Modelica.Fluid.Sources.Boundary_pT Pozzetto(redeclare package Medium = Modelica.Media.Water.StandardWater,
    nPorts = 1, T=Modelica.SIunits.Conversions.from_degC(40), p = 101325);

  Modelica.Fluid.Vessels.OpenTank bacinella2(redeclare package Medium = Modelica.Media.Water.StandardWater,
    crossArea = 4, height = 100, level(start = 0.01), nPorts = 1,
    portsData = {Modelica.Fluid.Vessels.BaseClasses.VesselPortsData(diameter = 0.1)}, use_portsData = true,
    T_start(start=293.15),
    ports(p(start={101422.89174430574})));

  Modelica.Fluid.Pipes.StaticPipe tubo1(redeclare package Medium = Modelica.Media.Water.StandardWater,
    allowFlowReversal = true, diameter = 0.1, height_ab = 0, isCircular = true, length = 200, nParallel = 1);

  Modelica.Fluid.Pipes.StaticPipe tubo2(redeclare package Medium = Modelica.Media.Water.StandardWater,
    allowFlowReversal = true, diameter = 0.1, height_ab = 0, isCircular = true, length = 200, nParallel = 1);

equation 
  connect(Pozzetto.ports[1], tubo1.port_a);
  connect(Pompa.port_a, tubo1.port_b);
  connect(Pompa.port_b, tubo2.port_a);
  //connect( tubo1.port_b, tubo2.port_a);
  connect(bacinella2.ports[1], tubo2.port_b);

  annotation (uses(Modelica(version="3.2.3")));
end Pompaggio_modified;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56186316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档