2.1. Элементы управления
Алгоритм гидравлического расчета, реализованный в Aerosym, базируется на постоянстве направлений потоков во всех элементах. Гидравлический решатель запускает итерации обычных расчетов, изменяя степени свободы и наблюдая невязки уравнений в элементах. Для схем без замкнутых контуров обычный расчет заключается в последовательном расчете элементов. Порядок элементов определяется простой сортировкой вершин ориентированного графа – элемент не считается, пока не посчитаны все входящие в него потоки. Расчет температур и составов выходных потоков происходит непосредственно при расчете элементов, поэтому для простых схем не требуется дополнительных итераций. Гидравлический расчет подразумевает наличие некоторое количество уравнений, и соответствующее ему количество степеней свободы – переменных, значения которых находятся для выполнения уравнений
Степенями свободы являются расходы в источниках (входных потоках для схемы), коэффициенты разделения потоках в разделителях, дополнительные перепады давлений в элементах с эффектом запирания. Уравнениями являются условия равенства давлений в смесителях для входящих потоков, фиксированное давление или заданная напорная характеристика для потребителей (конечных потоков схемы), фиксированный расход в режиме запирания.
Для решения системы уравнений применяется метод Ньютона с расчетом матрицы Якоби серией расчетов малых возмущений для каждого параметра:
Вектор
определяет направление поиска для вектора степеней свободы следующей итерации.
Для схем с замкнутыми контурами обычный расчет происходит по следующей схеме:
- в ориентированном графе расчетной схемы определяются такие связи, разрыв которых переводят схему в схему без контуров. Потоки таких связей называются далее реверсными (обозначены кругом, рис.8.1.1).
- реверсные потоки инициализируются либо нулевыми значениями, либо значениями с предыдущего расчета,
- производится расчет схемы без контуров, в результате которого в реверсных потоках появляются новые значения температуры, давления, расхода и компонентного состава,
- на основании сравнения новых значений температуры, давления и массового расхода с предыдущими значениями для всех реверсных потоков расчет либо считается завершенным, либо запускается следующая итерация.
Описанный выше итерационный расчет соответствует решению системы уравнений вида
где \(y\) – параметры реверсных потоков. В реверсных потоках сохраняется результаты нескольких последних итераций, что используется для применения метода Вегстейна для ускорения сходимости.
Гидравлический расчет схем с контурами проходит по описанной ранее схеме с той лишь разницей, что каждый расчет, в том числе и расчет возмущений для нахождения градиентов, представляет собой итерационный процесс до достижения сходимости в реверсных потоках.
Гидравлический расчет реализован в ядре Aerosym. В стандартном потоке есть флаг, указывающий решателю, что расход этого потока является степенью свободы. Гидравлические элементы, то есть те, которые задают степень свободы или уравнение, располагаются в отдельных библиотеках (.dll), загружаемых автоматически при запуске программы. Пользователь имеет возможность создавать новые гидравлические элементы путем написания собственных библиотек на C++. Для этого необходимо переопределить виртуальные функции базового класса:
- получить количество степеней свободы элемента,
- получить значение степени свободы и ее тип (расход, коэффициент разделения, давление),
- задать степень свободы,
- получить количество уравнений,
- рассчитать невязки уравнений.
Обычные элементы, без степеней свободы и уравнений, могут быть частью гидравлического расчета. Следует только помнить, что элементы, задающие фиксированные значения выходных давлений, способны вызвать противоречия с граничными условиями.