Я использую оператор пространственного распределения () в Dymola и получаю следующее сообщение при использовании Hidden.PrintFailureToDifferentiate = true;
"Может вычислять только нескалярные градиенты функций, указывающих производные, а не для: пространственного распределения"
Я вызываю оператора следующим образом:
(time_rev, time_flow) = пространственное распределение (время, время, х / длина, v_water> = 0, {0.0,1.0}, {время, время});
и использовать его для расчета температуры на выходе моей трубы.
Кто-нибудь понял, в чем проблема?Я не совсем понимаю сообщение об ошибке.
Более полный пример:
cp_in = //Calculates specific Heatcap
cp_out = //Calculates specific Heatcap
cp = (cp_in+cp_out)*0.5;
C = (Modelica.Constants.pi*(1/4))*diameter_i^2*fluidInlet.d*cp;
R= // Calculates Heatresistance
//---------Conservation of mass flow and composition
//The usual stuff equal massflow,xi and p at both connectors
//----------Spatial
tau_nom = C*R;
v_water = //Calc Speed of water from Geometric data and inlet rho
der(x) = v_water;
(time_reversed,time_flow) = spatialDistribution(time,time,x/length,v_water>=0, {0.0,1.0}, {time,time});
tau_delay= time - time_flow;
tau_reversed= time - time_reversed; //Not used right now
if inlet.m_flow >= 0 then
T_out = (T_amb + (T_in - heat.T)*exp(-tau_delay/tau_nom));
heat.Q_flow = -inlet.m_flow*cp*(T_in - T_out);
inlet.h = inStream(outlet.h);
else
outlet.h = inStream(inlet.h);
T_in = T_out;
heat.Q_flow = -inlet.m_flow*cp*(T_in - T_out);
end if;