初始化系统在结构上是单一的

The initialization system is structurally singular

我尝试在 modelica 中模拟一个泵,它抛出一个错误提示:

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])  

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

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 — 默认值)来定义阀门系数,因此您不应修改 AvKv。删除这四行将对您有所帮助。