Визуализация тепловых полей с использованием библиотек OpenGL и TaoFramework

УДК 681.3.06:519.6

ВИЗУАЛИЗАЦИЯ ТЕПЛОВЫХ ПОЛЕЙ С ИСПОЛЬЗОВАНИЕМ БИБЛИОТЕК

OPENGL И TAOFRAMEWORK

М.Н. Аралов, А.В. Барабанов, Н.И. Гребенникова

Разработан и реализован в программном коде алгоритм визуализации тепловой модели полупроводникового кристалла

Ключевые слова: визуализация, тепловое поле, термограмма, OpenGL, TaoFramework

Введение. В современных условиях производства математическое моделирование играет очень важную роль, выступая в качестве средства оптимизации и прогнозирования. Моделирование тепловых полей является, в частности, одной из наиболее актуальных проблем при проектировании электронных компонентов [1]. Визуализация тепловых полей, т.е. получение термограммы, представляет собой заключительную часть моделирования тепловых процессов. Другими словами, при создании специальных средств расчета тепловых параметров и моделирования тепловых процессов, разработчик столкнется с задачей визуализации тепловых полей.

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

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

О библиотеках OpenGL и TaoFramework. Как известно, OpenGL расшифровывается как OpenGraphicsLibrary, что в переводе на русский язык означает «открытая графическая библиотека». Другими словами, OpenGL - это некая спецификация, включающая в себя несколько сотен функций. Она определяет независимый от языка программирования кросс-платформенный программный интерфейс, с помощью которого программист может создавать приложения, использующие двухмерную и трехмерную компьютерную графику. Первая базовая версия OpenGL появилась в 1992 году, она была разработана компанией SiliconGraphicsInc., занима-

Аралов Михаил Николаевич - ВГТУ, аспирант, тел. (473) 2437718

Барабанов Александр Владимирович - ВГТУ, канд. техн. наук, доцент, тел. (473) 2437718

Гребенникова Наталия Ивановна - ВГТУ, канд. техн. наук, доцент, тел. (473) 2437718

ющейся разработками в области трехмерной компьютерной графики. В современном мире библиотеки OpenGL и DirectX являются конкурентами на платформе MS Windows [3].

TaoFramework - это свободно-распространяемая библиотека с открытым исходным кодом, предназначенная для быстрой и удобной разработки кросс-платформенного мультимедийного программного обеспечения в среде .NET Framework и Mono. На сегодняшний день, TaoFramework -это лучший путь для использования библиотеки OpenGLпри разработке в среде .NET на языке C# [3].

Структура программного компонента. Разработанный программный компонент состоит из четырех основных частей - файла с исходным массивом, пользовательского интерфейса, модуля визуализации и модуля расчета цвета (рис. 1).

Исходный массив - это матрица температур моделируемого кристалла, рассчитанная при помощи специальных программных средств и хранящаяся в отдельном файле. О методах расчета этой матрицы на основе программной модели устройства упоминается в [4] и [5].

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

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

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

Исходный массив

И

Пользовательский интерфейс

А

а р

-

о

мо р

е

н

V

- я

ы Я о и

и- та

на р

БД цветовых параметров

-N

Si-/

1Z

Модуль расчёта цвета

7Y

и н

V

Модуль визуализации

П

Библиотека OpenGl

Ж

Библиотека TaoFramework

Рис. 1. Структура программного компонента

Инициализация графических компонентов.

Для работы используются пространства имен Tao.OpenGl, Tao.FreeGlut и Tao.Platform.Windows. Вывод графического изображения осуществлен через элемент simpleOpenGlControl пространства имен Tao.Platform.Windows. Экземпляр этого элемента имеет имя AnT.

Далее приведен фрагмент кода программы, выполняющий инициализацию OpenGLв C#.

// инициализация Glut Glut.glutInit();

Glut.glutInitDisplayMode(Glut.GLUT_RGB |

Glut.GLUT_DOUBLE | Glut. GLUT_DEPTH); // очистка окна

Gl.glClearColor(255, 255, 255, 1); // установка порта вывода в соотвествии // с размерами элемента anT Gl.glViewport(0, 0, AnT.Width, AnT.Height); // настройкапроекции Gl.glMatrixMode(Gl.GL_PROJECTION); Gl.glLoadIdentity();

// настройка 2D ортогональной проекции в // соответствии с размерами отображаемой матрицы Glu.gluOrtho2D (1, MatrT. getLength( 1), 1, MatrT.getLength(0));

//установка объектно-видовой матрицы и очистка

Gl.glMatrixMode(Gl.GL_MODELVIEW);

Gl.glLoadIdentity();

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

private void TempToRGB

{

double Colour_lim = (Tmax-Tmin)/6; double Tblue = Tmin + Colour_lim; double Tviolet = Tmin + Colour_lim*2; double Tred = Tmin + Colour_lim*3; double Torange = Tmin + Colour_lim*4; double Tyellow = Tmin + Colour_lim*5; double t = ((T - Tmin) % Colour_lim) / Colour_lim; double R = 0, G = 0, B = 0; R = (T <= Tblue) ? 0 : (T > Tviolet) ? 1 : t;

G = (T <= Tred) ? 0 : (T > Tyellow) ? 1 : (t < Torange) ? t / 2: 0.5 + t / 2; B = (T <= Tmin) ? 0 :

(T >= Tmin && T< Tblue) ? t : (T >= Tblue && T< Tviolet) ? 1 : (T >= Tviolet && T< red) ? 1 - t : (T >= Tred && T< yellow) ? 0 : (T >= Tyellow && T< Tmax) ? t : 1 ;

Gl.glColor3d(R, G, B);

}

T - температура отображаемого элемента; Tmin и Tmax - границы диапазона отображаемых температур; R,G,B - составляющие спектра.

Визуализация матрицы температур. Ниже представлен код метода визуализации матрицы температур.

privatevoidout_PpenGL() {

Gl.glClear

{for (int j = 0; j < n - 1; j++) {

Gl. glBegin(Gl.GL_QUAD S); TempToRGB (MatrT [i, j]); Gl.glVertex2d(j + 1, m - i); TempToRGB (MatrT [i + 1, j]); Gl.glVertex2d(j + 1, m - i - 1); TempToRGB (MatrT [i + 1j + 1]); Gl.glVertex2d(j + 2, m - i - 1); TempToRGB (MatrT [i, j + 1]); Gl.glVertex2d(j + 2, m - i);

Gl.glEnd();

}}

Gl.glFlush(); AnT.Invalidate();

}

МайТ - отображаемая матрица температур. Компонент АпТ - это экземпляр элемента з1тр1еОреп01Соп1го1 пространства имен Tao.P1atform.Windows. Описанный метод вызывается по событию, связанному с таймером. Таким образом, изображение на экране обновляется постоянно, что позволяет быстрее подобрать оптимальные значения граничных температур.

Результаты работы. Ниже приведены результаты визуализации тепловой модели раннего прототипа микроконтроллера 1887ВЕ4У при различных граничных условиях. Четыре яркие точки в верхнем правом углу изображений - области перегрева.

12,3°С

10,ГС

Рис. 2. Термограмма с интервалом температур Т

15,0°С

I- 14

12

- 10

[: 5,0°С

Рис. 3. Термограмма с интервалом температур Т

20,0°С

15,0°С

Рис. 4. Термограмма с интервалом температур Т

Литература

1. Барабанов, В.Ф. Математические методы моделирования тепловых полей в трехмерной сборке интегральных схем [Текст] / В.Ф. Барабанов, М.Н. Аралов, Н.И. Гребенникова // Вестник Воронежского государственного технического университета.- 2013.- Т. 9, № 6-3. - С. 55-57.

2. Брагин, Д.М. Математическое моделирование процесса размещения разногабаритных элементов на монтажном пространстве с учетом тепловых полей [Текст] / Д.М. Брагин, В.Ф. Барабанов, А.М. Нужный // Вестник Воронежского государственного технического университета. - 2007.- Т. 3, № 5. - С. 76 -80.

3. Уроки OpenGL. Программирование 3D графики. [Электронный ресурс] - Режим доступа: http://esate.ru

4. Методы и алгоритмы моделирования тепловых полей в трехмерной сборке интегральных схем [Текст] / В.Ф. Барабанов, С.Л. Подвальный, А.В. Ачкасов, М.Н. Аралов // Радиотехника. - 2014. - №6 - С. 82-87.

5. Барабанов, В.Ф. Структура программной модели цифрового устройства [Текст] / В.Ф. Барабанов, М.Н. Аралов // Информационные технологии моделирования и управления. - 2013. - № 6 (84). - С. 583-589.

6. Барабанов В.Ф. Интерактивные средства моделирования сложных технологических процессов [Текст] / В.Ф. Барабанов, С.Л. Подвальный. -Воронеж, 2000.

7. Брагин, Д.М. Интегрированный программный комплекс моделирования и проектирования электронных средств с учетом тепловых полей [Текст] / Д.М.Брагин, В.Ф. Барабанов, А.М. Нужный // Системы управления и информационные технологии. - 2007. - Т. 29. - № 3. - С.63-66.

Воронежский государственный технический университет

VISUALIZATION OF THERMAL FIELDS WITH USE OF OPENGL AND TAO FRAMEWORK

LIBRARIES

M.N. Aralov, А^. Barabanov, N.I. Grebennikova

The drawing algorithm of thermal model of a semiconductor crystal is developed and realized in a program code Key words: visualization, thermal field, thermogram, OpenGL, Tao Framework