初始化系统结构单一 [英] The initialization system is structurally singular
本文介绍了初始化系统结构单一的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试在 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) 来定义阀门系数,因此您不应修改 Av
和 Kv
.删除这四行会对您有所帮助.
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屋!
查看全文