Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диссертация_Шаенко.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
4.79 Mб
Скачать

Заключение

В заключении сформулированы основные результаты и выводы.

  1. Предложен метод анализа радиационно-кондуктивного теплообмена в конструкции больших космических телескопов.

  2. Предложен метод расчета лучистого теплообмена, опирающийся на подходы из области трехмерной графики.

  3. Разработан алгоритм расчета больших космических телескопов, пригодный для оперативного анализа теплового режима на ЭВМ, обладающих ограниченными вычислительными ресурсами.

  4. Разработан программный модуль T.H.O.R.I.U.M., реализующий предложенный алгоритм.

  5. Получены результаты расчета тепловых режимов обсерватории «Миллиметрон»:

    1. Показано существенное влияние погрешностей формы радиационного экрана на температуру зеркала телескопа.

    2. Обнаружено существование набора термооптических коэффициентов, обеспечивающих наименьшую температуру зеркала при заданной геометрической конфигурации экранов.

Приложение. Краткое описание алгоритма t.H.O.R.I.U.M.

В настоящем документе приведено кратное описание алгоритма работы модуля T.H.O.R.I.U.M. с указанием основных вызываемых функций (Function) и процедур (Sub).

Приложение реализовано с помощью двух основных классов:

  • Model, экземпляр, используемый в приложении, имеет имя FEM,

  • TOP_Solver, экземпляр, используемый в приложении, имеет имя Solver.

В классе Model сосредоточены процедуры и функции считывания и обработки конечно-элементной модели. В классе TOP_Solver находятся функции и процедуры, реализующие метод расчета и отображение результатов расчета. Ниже дано описание операций, производимых с полями указанных классов. Описание процесса установки и эксплуатации модуля приведено в инструкции по установке и эксплуатации, входящей в комплект поставки модуля.

П1. Подготовка расчета

Работа модуля начинается с запуска главной формы приложения Main_form (конструктор Main_form.New и событие Main_form.Load). В этих процедурах происходит начальная инициализация объектов FEM и Solver и других, вспомогательных внутренних переменных модуля, так же настройка вида главной формы. После этого на экране появляется форма, и приложение ждет действий пользователя. На этом этапе возможно:

  • Выбрать файл с исходными данными, пункт меню File/Open;

  • Выйти из приложения, пункт меню File/Exit;

  • Получить справку о приложении, пункт меню About.

При выборе пункта меню File/Open запускается процедура считывания файлов исходных данных (Sub Main_form.Open_model).

П1.1. Считывание файлов с исходными данными

Процедура Main_form.Open_model проверяет тип файла, который выбрал пользователь, и зависимости от этого производит тот или иной вид считывания.

В случае выбора пользователем файла со скомпилированной моделью (файл с расширением *.model) процедура производит его десериализацию и заполняет поля объекта FEM.

В том случае, если пользователь выбирает файл с расширением *.bdf или *.dat, содержащий текстовое описание конечно-элементной модели, процедура создает новый экземпляр класса Model, производит считывание текстового файла, заполняет считанной информацией его поля и производит аналогичные операции с файлом описанием термооптических и теплофизических характеристик модели.

После того, как поля модели заполнены, приложение переходит к процедуре отображения считанной модели.

П1.2. Отображение модели

Отображение модели производится по-разному в зависимости от степени завершенности расчета, записанного в файле.

Если пользователь выбрал файл с расширением *.bdf или *.dat, заведомо не содержащий результаты расчета, или файл с расширением *.model, не содержащий результаты расчета, то в этом случае создается экземпляр класса Visualisation, c именем view. Класс Visualisation используется для доступа к средствам OpenGL. Поля созданного объекта заполняются таким образом, чтобы на экране появилась вспомогательная форма с исходным видом модели. В данном режиме отображения возможен просмотр теплофизических свойств материалов элементов и термооптических свойств поверхностей.

Если пользователь выбрал файл с расширением *.model, в котором содержатся результаты расчета, то тогда на основной форме появляются объекты управления результатами, вспомогательная форма отображает модель, соответствующую выбранному шагу расчета.

После того как пользователь проверил свойства модели, он может запустить расчет выбором пункта меню Analysis/Thermal analysis.

П2. Проведение расчета

Переход к расчету производится после выбора пункта меню Analysis/Thermal analysis. С выбором этого меню скрывается вспомогательная форма для отображения модели view, так как она в дальнейшем в ходе расчета будет использоваться для определения взаимной видимости элементов. После того, как форма view стала невидимой, происходит переход к процедуре Solver.Solve_problem из класса TOP_solver.

П2.1. Подготовка объекта Solver к решению

Процедура Solver.Solve_problem производит выбор того или иного алгоритма решения в зависимости от информации, содержащейся в файле с расширением *.top. В настоящем документе рассматривается проведение расчета с интегрированием по методу Эйлера с переменным шагом и учетом переменности теплофизических и термооптических свойств модели. Данный вид расчета реализуется процедурой TOP_Solver. Euler_var_T_step_with_smoothing_MATRIXLESS.

П2.2. Расчет методом Эйлера с переменным шагом

Перед началом интегрирования по времени процедура создает отображение конечно-элементной модели в набор многоугольников-граней и присваивает всем гранями модели, принимающих участие в лучистом теплообмене (массив FEM.Shining_face), цвета по номерам. Расчет Соответствие номера цвету производится с помощью процедуры Face.Detect_face_number.

Созданный массив граней FEM.Polygon используется для создания экземпляра класса Visualisation с именем aux_Visual, который применяется для расчета попадания пучка фотонов в элемент.

Непосредственно перед началом интегрирования применяются начальные условия. Температуры и теплопритоки элементов приводятся в соответствие с заданными.

К интегрированию по времени все готово. Шаг интегрирования начинается с вызовов функций расчета кондуктивного теплообмена TOP_Solver. Calc_C_transfer и лучистого теплообмена TOP_Solver.Calc_R_transfer_N_photon.

П2.3. Расчет кондуктивного теплообмена

На этапе подготовки расчета, до начала интегрирования для каждого элемента модели были найдены элементы-соседи, имеющие общие грани. Элемент и его соседи были разбиты на пары. По методу тепловых балансов, мощность теплопередачи между соседними элементами определяется расстоянием между элементами и площадью общей грани. Эти величины рассчитываются для каждой пары заранее. Непосредственно в процессе расчета вычисляются разница температур между элементами и средняя теплопроводность между элементами. После этого возможно вычисление мощности, передающейся с элемента на элемент посредством теплопроводности.

П2.4. Расчет лучистого теплообмена

В процедуре TOP_Solver.Calc_R_transfer_N_photon, реализующей расчет лучистого теплообмена методом Монте-Карло, перед началом расчета обнуляются мощности поглощенного, зеркально и диффузно отраженного и пропущенного излучения (процедура Reset_fases_R_Q).

Затем для всех элементов производится расчет излучаемой мощности. Если пользователь задал излучательные свойства поверхности как серой, мощность излучения находится по закону Стефана-Больцмана. Если же степень черноты поверхности зависит от длины волны, то степень черноты интегрируется по частоте, находится ее эффективное значение и далее расчет проводится также по закону Стефана-Больцмана. В том случае, если задан спектр излучения тела, то излучаемая им мощность рассчитывается по заданной эффективной температуре.

Имея рассчитанные мощности, становится возможным перейти к расчету мощности излучения, поглощаемого элементами. Для этого функцией TOP_Solver.Illuminate_model_and_save_absorbed_power_in_faces производится «освещение» модели с использованием в качестве источника излучения заданного элемента.

П2.5. «Освещение» модели

«Освещение» модели – это расчет мощности излучения, испущенного заданным элементом и поглощенного всеми элементами модели. Эта задача решается с помощью функции TOP_Solver.Illuminate_model_and_save_absorbed_power_in_faces.

Мощность, излучаемая элементом на данном шаге по времени, была рассчитана ранее. Расчет мощности излучения, поглощенного всем элементами модели, производится методом расчета траекторий пучков фотонов в следующей последовательности:

  • на элементе-источнике излучения случайным образом с равномерным распределением выбирается точка;

  • случайным образом в соответствии с заданным распределением выбирается направление распространения пучка фотонов;

  • в выбранную точку помещается камера с угловым размером поля зрения 1 градус х 1 градус;

  • в буфере видеоускорителя строится изображение модели, видимое камерой;

  • определяется цвет пикселя, находящегося в центре полученного изображения;

  • если цвет пикселя черный, то пучок считается покинувшим модель, расчет его траектории прекращается и происходит переход к излучению следующего пучка;

  • если цвет отличается от черного, то с помощью процедуры Face.Detect_face_number рассчитывается номер элемента, в который попадает пучок и точка пересечения пучка и элемента;

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

  • описанная последовательность действий повторяется заданное количество раз для всех пучков фотонов, которые необходимо излучить из грани элемента.

Аналогичным образом модели «освещается» из внешних источников излучения. Суммарная мощность теплопритока на i-й элемент на n-ом шаге по времени сохраняется в поле HT_element(i).HT_Step(n).Q, температура элемента на этом же шаге по времени хранится в поле HT_element(i).HT_Step(n).T.

П2.6. Сглаживание, выбор текущего шага и интегрирование мощности теплопритока

Рассчитанные мощности теплопритоков на элемент линейно сглаживаются по времени на заданном количестве шагов . Сглаживание производится следующим образом:

  • первые шагов полная мощность элемента поступает в интегратор без сглаживания,

  • на всех последующих шагах значения мощности корректируются по следующей формуле

,

(1)

где

- скорректированная полная мощность для i-го элемента n-ом шаге,

- момент времени на начало n-ого шага,

- вектор коэффициентов прямой сглаживания, причем

,

,

,

,

(2)

  • скорректированные по формуле (1) значения мощностей подаются на вход интегратора.

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

  • рассчитываются входящие тепловые мощности для всех элементов модели,

  • для каждого элемента вычисляются величины:

,

(4)

,

где

- шаг при охлаждении элемента,

- шаг при нагреве элемента,

, - коэффициенты уменьшения и увеличения температуры за шаг соответственно,

- текущая температура на n−1-ом шаге по времени,

- полная мощность, приходящаяся на элемент на n−1-ом шаге по времени,

- удельная теплоемкость на n−1-ом шаге по времени,

- плотность,

- объем.

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

Метод Эйлер с переменным шагом можно записать в виде

,

(5)

где

, - температура i-ого элемента на n-ом и n+1-ом шагах по времени;

, - теплоемкости i-ого элемента на n-ом и n+1-ом шагах по времени;

- задаваемый шаг по времени;

- полная мощность, приходящаяся на элемент на n-ом шаге по времени.

В случае учета зависимости теплоемкости от температуры, уравнение (5) решается методом Ньютона, в случае постоянной теплоемкости его можно переписать следующим образом

,

(6)

и получать температуру на следующем шаге в явном виде.

Уравнение (5) решается до достижения заданного времени окончания интегрирования. После этого приложение переключается в режим отображения результатов.

П3. Отображение и сохранение результатов расчета

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

П3.1.Отображение результатов расчета

Для текущего шага по времени (текущий шаг задается с помощью элементов управления, расположенных на главной форме приложения Main_form) рассчитываются цвета элементов в соответствии с их температурами. Создается новый экземпляр формы отображения view, с помощью которого будет производиться визуализация результатов. На вспомогательной форме создается цветовая шкала температур, процедура Solver.Create_value_strip, на главной форме заполняется выпадающий список шагов. После выполнения этих операций приложение готово к отображению результатов.

П3.2.Сохранение результатов расчета

Сохранение результатов возможно в двух видах: в виде сериализованной модели в файле с расширением *.model и в виде таблицы температуры и мощности теплопритока элементов в текстовом файле *.txt. Первый вид сохранения вызывается пользователем при выборе пункта меню File/Save, второй при выборе пункта меню File/Save results as txt. В первом случае вызывается процедура Main_form.Save_model, с помощью диалогового окна запрашивающая у пользователя имя файла и сериализующая объекты FEM и Solver в указанный файл. Во втором случае вызывается процедура Main_form.Save_txt_results, сохраняющая в выбираемый пользователем файл массив HT_element(i).HT_Step в виде набора строк: «Номер_элемента Время Температура Мощность_теплопритока».

П4. Распределенный параллельный расчет

Организация расчета радиационного теплообмена в распределенном виде позволяет привлекать к решению задачи большие вычислительные мощности и существенно сократить время получения ответа. В настоящей работе распределенные вычисления организуются в следующем виде.

Подготовительный этап

  1. Выделяется ЭВМ-сервер и задается ее адрес в локальной сети или Интернет.

  2. На сервер устанавливается программное обеспечение в серверном варианте для проведения распределенных вычислений.

  3. На ЭВМ-клиенты устанавливается и запускается программное обеспечение в клиентском варианте, значение поля Main_form.DC_Mode = "CLIENT".

Этап проведения расчета

  1. На сервер по заранее заданному адресу помещается модель конструкции, тепловой расчет которой необходимо провести.

  2. Происходит запуск приложения в серверном варианте, значение поля Main_form.DC_Mode = "SERVER".

  3. Сервер производит считывание модели, процедура Main_form.Open_model, и сериализует ее по указанному адресу Main_form.Save_model.

  4. Сервер формирует вектор температур на текущем шаге времени с помощью процедуры TOP_Solver.Write_temperature_file_to_dir.

  5. Клиенты через заданный промежуток времени проверяют наличие модели на сервере и при наличии модели производят ее считывание, процедура TOP_Solver.Read_temperature_file_from_dir.

  6. Клиенты производят оценку собственной производительности функцией TOP_Solver. Calc_productivity_index и сообщают о ее результатах серверу.

  7. Сервер, получив результаты оценки производительности, составляет списки элементов, процедура TOP_Solver.Detect_part_of_model_for_clients, лучистый поток с которых необходимо рассчитать клиентам, и передает эти списки клиентам. Количество элементов, которые необходимо рассчитать клиенту, прямо пропорционально его производительности: чем больше вычислительная мощность клиента, тем больше элементов ему необходимо рассчитать.

  8. Сервер после рассылки списков для расчета лучистого теплообмена самостоятельно проводит расчет кондуктивного теплообмена TOP_Solver.Calc_C_transfer.

  9. Клиенты, производят расчет мощности излучения, испускаемого элементами из списка и поглощаемого всеми элементами модели TOP_Solver.Calc_R_transfer_N_photon. По окончании расчета клиент формирует вектор поглощенных мощностей и передает его на сервер TOP_Solver.Write_heat_power_file_to_dir.

  10. Клиенты после отправки вектора поглощенных мощностей на сервер переходят к пункту 5.

  11. Сервер, закончив проведение расчета кондуктивного теплообмена, ожидает окончания расчетов клиентов. В случае, если по истечении заданного срока все клиенты не предоставили векторы поглощенных мощностей излучения, то сервер производит недостающие расчеты самостоятельно.

  12. Сервер, получив все векторы поглощенных мощностей излучения, суммирует их, определяет суммарные тепловые потоки от лучистого и кондуктивного теплообмена и производит расчет вектора температур на следующем шаге времени TOP_Solver.Euler_var_MATRIXLESS_DC.

  13. Сервер размещает новый вектор температур и переходит к пункту 6.

  14. По окончании расчета сервер формирует по заданному адресу сигнал клиентам об окончании расчета. При получении этого сигнала клиенты переходят в режим ожидания расчета, увеличивая интервал времени между проверками наличия модели на сервере.

Приведенная последовательность действий сервера и клиентов позволяет организовать распределенный расчет радиационно-кондуктивного теплообмена в условиях присоединения и отсоединения клиентов во время расчета.