Как использовать значение переменной в предыдущем интервале в качестве входных данных для уравнения?

Можно ли использовать предыдущее значение переменной времени

например: предположим, что у меня есть труба, температура на входе которой составляет 298K с заданным равномерным массовым расходом (m_flow), теперь предположим, что я нагреваю трубу с помощью нагревателя на 100 Вт. Температура на выходе достигнет более высокой температуры, предположим, 302K, теперь, если мне придется использовать эту температуру на выходе в качестве температуры на входе (в том смысле, что я рециркулирую воду), как я буду это делать?

Можно ли обновить значение температуры на входе на основе температуры на выходе на предыдущем временном шаге? так что для следующей итерации температура на входе будет такой же, как температура на выходе в предыдущей итерации (другими словами, жидкость будет рециркулировать).

Спасибо


person prasadshet    schedule 20.03.2013    source источник


Ответы (3)


Вы не можете получить доступ к значению на предыдущем временном шаге. Самое близкое, что вы можете получить в Modelica, - это использовать delay(exp,T) для получения значения T единиц времени назад.

person sjoelund.se    schedule 20.03.2013

Временной шаг в это вообще не входит. Модель, которая использует информацию о временном шаге, просто неверна. Природа не знает и не заботится о временных шагах интеграции, модель должна это отражать.

Мне кажется, что вы хотите запечатлеть задержку транспорта. Транспортная задержка - это задержка, обусловленная временем прохождения молекул, электронов и т. Д. Через систему. Итак, по-видимому, вы хотите смоделировать время, которое требуется входящей жидкости, чтобы достичь выхода. Опять же, это не имеет ничего общего с временным шагом интегрирования, а скорее со скоростью жидкости и расстоянием, которое она должна пройти. Как только вы узнаете, сколько времени это займет (либо априорным знанием системы, либо просмотром самих результатов моделирования), вы можете последовать предложению Марко использовать оператор задержки.

person Michael Tiller    schedule 21.03.2013
comment
Я не очень хорошо объяснил, извините за это. Я полностью согласен с Майклом и просто для пояснения предлагал использовать непрерывные дифференцируемые уравнения, как в классах Modelica, используемых для построения примера, на который я ссылался вместо, вместо использования оператора задержки. - person Marco Romanoni; 21.03.2013

Чтобы настроить подходящую модель для описанной вами системы, я предлагаю вам взглянуть на пример:

Modelica.Thermal.FluidHeatFlow.Examples.IndirectCooling

Modelica.Thermal.FluidHeatFlow.Examples.IndirectCooling schema

стандартной библиотеки модели ver. 3.2. Вместо одной трубы вы можете поместить компонент окружающего звука или регулятора громкости, который лучше соответствует вашим потребностям. Более того, используя непрерывные и дифференцируемые уравнения (функция задержки - нет), вы получите выгоду от некоторых преимуществ кода Modelica, например вы сможете повторно использовать свои модели в гораздо более широком диапазоне случаев, решать обратные задачи, решать задачи начального значения, ...

Надеюсь, это поможет, Марко

person Marco Romanoni    schedule 20.03.2013