初始化系统结构单一 [英] The initialization system is structurally singular

查看:41
本文介绍了初始化系统结构单一的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在 modelica 中为泵建模,但它提示我一个错误:

I try to model a pump in modelica and it throws me an error saying:

The initialization system is structurally singular. 
The following variable(s) could not be matched to any equation:      
Swept1.medium.p      
Swept1.medium.h      
Niederdrucktank.level      
Niederdrucktank.medium.h      
Hochdrucktank.level      
Hochdrucktank.medium.h      
pre(Swept1.medium.phase)      
pre(Niederdrucktank.medium.phase)      
pre(Hochdrucktank.medium.phase)      
pre(Swept1.inFlow[1])      
pre(Swept1.inFlow[2])      
pre(Niederdrucktank.regularFlow[1])      
pre(Niederdrucktank.inFlow[1])      
pre(Hochdrucktank.regularFlow[1])      
pre(Hochdrucktank.inFlow[1])  

你对这个错误有什么想法吗?
这是模型:

Do you have any ideas on this error?
This is the model:

model Hochdruckreiniger2
    //Declaration(s)
    Real V_max = 0.000003;
    Real V_tod = 0.000002;
    Real pi = 3.14;
    Real N = 2800;
    Real T_per;
    Real f;
    Real opening_NP;
    Real opening_HP;
    //Component(s)
    Modelica.Fluid.Machines.SweptVolume Swept1 (
        pistonCrossArea = 0.0001131,
        clearance = 0.000002,
        portsData = {Modelica.Fluid.Vessels.BaseClasses.VesselPortsData(diameter=
        0.1),Modelica.Fluid.Vessels.BaseClasses.VesselPortsData(diameter=
        0.1)},
        redeclare package Medium = Modelica.Media.Water.StandardWater,
        nPorts = 2,
        use_portsData = true);
    inner Modelica.Fluid.System system;
    Modelica.Fluid.Vessels.OpenTank Niederdrucktank (
        redeclare package Medium = Modelica.Media.Water.StandardWater,
        nPorts = 1,
        height = 40.84,
        crossArea = 10,
        portsData = {Modelica.Fluid.Vessels.BaseClasses.VesselPortsData(diameter=
        0.1)});
    Modelica.Fluid.Vessels.OpenTank Hochdrucktank (
        redeclare package Medium = Modelica.Media.Water.StandardWater,
        nPorts = 1,
        height = 4997,
        crossArea = 10,
        portsData = {Modelica.Fluid.Vessels.BaseClasses.VesselPortsData(diameter=
        0.1)});
    Modelica.Mechanics.Translational.Sources.Position Posit1 (exact = true);
    Modelica.Blocks.Sources.Sine Sine1 (freqHz = 46.72, amplitude = 0.0000005);
    Modelica.Fluid.Valves.ValveIncompressible Hochdruckventile (
        Av = 0.000187133,
        Kv = 5.94749e-6,
        dp_nominal = 66.6175,
        m_flow_nominal = 0.04873,
        rho_nominal = 1019.921,
        opening = opening_HP,
        redeclare package Medium = Modelica.Media.Water.StandardWater);
    Modelica.Fluid.Valves.ValveIncompressible Niederdruckventile (
        Av = 0.000191169,
        Kv = 6.04833e-6,
        dp_nominal = 65.21,
        m_flow_nominal = 0.04873,
        rho_nominal = 998.388,
        opening = opening_NP,
        redeclare package Medium = Modelica.Media.Water.StandardWater);


equation
    T_per=pi/(180*3600*N/60);//Radian  
        f=((V_max-V_tod)/2)*sin((2*pi*time*T_per)+(V_tod+(V_max-V_tod)/2));
          if der(f)>=0 then
            opening_NP=1;
            opening_HP=0;
           else
            opening_NP=0;
            opening_HP=1;
          end if;
    //Connection(s)
    connect(Sine1.y, Posit1.s_ref);
    connect(Posit1.flange, Swept1.flange);
    connect(Hochdrucktank.ports[1], Hochdruckventile.port_a);
    connect(Hochdruckventile.port_b, Swept1.ports[2]);
    connect(Niederdrucktank.ports[1], Niederdruckventile.port_a);
    connect(Niederdruckventile.port_b, Swept1.ports[1]);
end  Hochdruckreiniger2;

推荐答案

您的阀门模型使用公称压降和流量(参数 CvData=Modelica.Fluid.Types.CvTypes.OpPoint — 默认值value) 来定义阀门系数,因此您不应修改 AvKv.删除这四行会对您有所帮助.

Your valve models use the nominal pressure drop and flow (parameter CvData=Modelica.Fluid.Types.CvTypes.OpPoint — the default value) to define the valve coefficients so you shouldn't modify Av and Kv. Removing these four lines will help you on the way.

这篇关于初始化系统结构单一的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆