我想对一个封闭的液压循环进行建模,可以在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;
有人能给我一个提示是什么问题吗?
最佳答案
您确定您的系统超定了吗?我是由于您的producer
和consumer
模型都未充分确定,因此不确定该怎么做。
通常,组件中需要的方程式数量等于其所有连接器上的流量变量数量+内部变量数量(参数不计算在内)+输出数量。
通过这种方法,您的producer
模型应该具有2个方程式(因为它的所有连接器上都有2个流量变量)。同样,您的consumer
模型应该具有2个方程式(因为它的所有连接器上都有两个流量变量)。因此,我看不出如何生成太多方程式。
您的模型也很棘手,因为您正在对通过系统的动量流进行建模(由连接器上的速度表示为流变量来指示)。但是您的潜在变量是压力。您的问题没有跟踪质量(通常是这样)。
因此,总而言之,您的组件模型肯定存在问题,因为它们没有正确数量的方程式,因此它们“不平衡”(根据Modelica规范)。但是即使在“物理”水平上,您的公式(压力和速度)在我的经验中也是不寻常的,在我看来,一旦克服了方程平衡问题,它也可能导致问题。