我想对一个封闭的液压循环进行建模,可以在Modelica标准库/流体/示例/加热系统中找到。在加热系统以及我的(最小化)示例中,我遇到了相同的问题:系统超定。
在下面的讲座中,您可以找到“加热系统”作为“不良示例”,所以我想这是一个众所周知的问题,但我并没有真正理解这一点。
http://www.modprod.liu.se/MODPROD2011/1.252944/modprod2011-day2-talk3-Keynote-Francesco-Casella-Control-and-Modelica.pdf(第20页)

我的例子是:

一台泵

model producer
  pipe_flange w,k;
  parameter Real a,b,c;
equation
  w.p = k.p + a * k.Vp ^ 2 + b * k.Vp + c;
end producer;


抵抗

model consumer
  pipe_flange w,k;
  parameter Real rho;
  parameter Real d_i;
  parameter Real zeta;
equation
  k.p = w.p - rho / 2 * ((w.Vp * 4) / 3.14 * d_i ^ 2) ^ 2 * zeta;
end consumer;


他们与一个

connector pipe_flange
  Real p;
  flow Real Vp;
end pipe_flange;


整个系统是:

model System
  consumer consumer1(rho = 1000, d_i = 0.06, zeta = 0.5);
  producer producer1(a = -740741, b = -19630, c = 1070);
equation
  connect(consumer1.w,producer1.w);
  connect(consumer1.k,producer1.k);
end System;


有人能给我一个提示是什么问题吗?

最佳答案

您确定您的系统超定了吗?我是由于您的producerconsumer模型都未充分确定,因此不确定该怎么做。

通常,组件中需要的方程式数量等于其所有连接器上的流量变量数量+内部变量数量(参数不计算在内)+输出数量。

通过这种方法,您的producer模型应该具有2个方程式(因为它的所有连接器上都有2个流量变量)。同样,您的consumer模型应该具有2个方程式(因为它的所有连接器上都有两个流量变量)。因此,我看不出如何生成太多方程式。

您的模型也很棘手,因为您正在对通过系统的动量流进行建模(由连接器上的速度表示为流变量来指示)。但是您的潜在变量是压力。您的问题没有跟踪质量(通常是这样)。

因此,总而言之,您的组件模型肯定存在问题,因为它们没有正确数量的方程式,因此它们“不平衡”(根据Modelica规范)。但是即使在“物理”水平上,您的公式(压力和速度)在我的经验中也是不寻常的,在我看来,一旦克服了方程平衡问题,它也可能导致问题。

10-07 15:56