, имеющий сложный коннектор, при его распространении я хочу изменить только одну переменную из набора переменных, не требуя явно писать все уравнения равенства для других переменных.Modelica - изменить только один параметр разъема типа комплексного типа
Идеал был бы операцией connect и переписыванием только одной конкретной переменной.
class FluidClass
String name(start="name")"name";
Real fl(start=1000)"flow [l/h]";
Real p(start=1)"pressure [bar]";
Real T(start=25)"temperature [degC]";
Real DS(start=80)"dry substance [%]";
Real rho(start=100)"viscosity [mPas]";
end FluidClass;
connector fl "flow"
extends FluidClass;
end fl;
model setParam "set parameter"
fl fli annotation(Placement(
transformation(extent={{-5,-5},{5,5}}),
iconTransformation(extent={{-105,-5},{-95,5}})));
fl flo "flow output" annotation(Placement(
transformation(extent={{-50,0},{-40,10}}),
iconTransformation(extent={{95,-5},{105,5}})));
input Modelica.Blocks.Interfaces.RealInput u "set value";
parameter EnumType1 var "variable to change";
type EnumType1 = enumeration(
fl "Flow rate",
p "Pressure",
T "Temperature",
DS "Dry substance",
rho "Viscosity");
equation
// enter your equations here
if var ==1 then //flow
flo.name=fli.name;
flo.fl=u;
flo.p=fli.p;
flo.T=fli.T;
flo.DS=fli.DS;
flo.rho=fli.rho;
end if;
if var ==2 then //pressure
flo.name=fli.name;
flo.fl=fli.fl;
flo.p=u;
flo.T=fli.T;
flo.DS=fli.DS;
flo.rho=fli.rho;
end if;
if var ==3 then //temperature
flo.name=fli.name;
flo.fl=fli.fl;
flo.p=fli.p;
flo.T=u;
flo.DS=fli.DS;
flo.rho=fli.rho;
end if;
if var ==4 then //DS
flo.name=fli.name;
flo.fl=fli.fl;
flo.p=fli.p;
flo.T=fli.T;
flo.DS=u;
flo.rho=fli.rho;
end if;
if var ==5 then //viscosity
flo.name=fli.name;
flo.fl=fli.fl;
flo.p=fli.p;
flo.T=fli.T;
flo.DS=fli.DS;
flo.rho=u;
end if;
end setParam;
Я был бы очень признателен за вашу помощь.
Привет, Майкл, я рад, что вы ответили, что ответили на мой вопрос, поскольку я видел много ваших вкладов и прочитал некоторые ваши работы по сети. – Geronimo
На самом деле, я немного поиграл с жидкостными библиотек, но был просто перегружен и, кроме того, либо не понял их правильного использования, либо не заставил их работать. То, что я делаю, пытается убрать моих коллег от Excel, с помощью инструмента, который я нашел более подходящим с его подходом OO и динамическим компонентом, что позволяет более глубоко обследовать наши модели. – Geronimo
Я надеюсь, что, найдя его с Modelica и для того, чтобы получить «более плавное» введение в тему, я попытался создать свою «собственную» библиотеку, не перегружая ее слишком точными фактами. Действительно, чтобы ограничить это в первый шаг к тому, что мы делаем в excel прямо сейчас. К сожалению, не так много справки, как для «основного» программного обеспечения, так что кривая обучения намного более плоская, чем с другими программными инструментами. Однако, еще раз большое спасибо, и я постараюсь следовать вашему совету. – Geronimo