Исходя из комментариев людей, вы теперь знаете, что Modelica довольно строго относится к поведению во времени.Вы можете утверждать, что это более физическое представление времени (за исключением квантовой и другой сумасшедшей физики), поскольку в вашем коде вы не можете перемещаться во времени в своем коде.
В зависимости от вашего приложения могут существовать способы решения вашей проблемы.,Одна из возможностей - перенести временное поведение в инициализацию.Таким образом вы фиксируете поведение до time=0
и начинаете с time=0
с ожидаемым поведением.
Например:
model var
parameter Modelica.SIunits.Time t_zero = 6;
parameter Real x(fixed=false);
Real y;
Real z;
initial equation
x = 6*t_zero; // or some more complicated set of equations/functions
equation
z = x;
y=3*z;
end var;
Признано, что это ограничивает вещи, потенциально слишком много, но вы можете иметь много параметров и иметь более сложное представление в блоке исходного уравнения,Вы также можете вызвать функцию x=func()
, где вы выполнили интеграцию и т. Д., Чтобы получить значение x в time=0
.
Надеюсь, что это поможет или сейчас, или в будущем.