Жакин А.М., Смагулова К.К.

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

 

Способы визуализации технологических процессов в образовательных целях

 

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

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

В двумерном режиме для создания иллюзии пространства и соотношения размещения объектов используются принципы перспективы (удаленные объекты меньше близких объектов, тени, сходящиеся к горизонту линии и др.), которые не всегда могут дать точную информацию об объектах. Если вы впервые видите объект, то вы никогда не определите его размеров и местоположения. В 3D требуется меньше данных для соотношения размеров объектов и человек сразу улавливает их реальные размеры и расположение в пространстве.

Рассмотрим двумерную визуализацию на примере технологического процесса синтеза аммиака построеную с помощью пакета Visual Basic 6.0. На рисунке 1 отображено множество агрегатов технологического процесса. С помощью программного кода процесс приводится в действие и мы видим в целом как протекает процесс и какие узлы начинают работать с помощью, так называемых датчиков, которые имеют прямоугольную форму и окрашиваются в красный цвет. Отчетливо можно видеть уровень аммиака в сепараторе, а также температуру в разных узлах процесса. В Visual Basic 6.0 для каждого события пишется отдельный код, в котором управление получают один или несколько агрегатов технологического процесса.

 

Рисунок 1 – Двухмерная визуализация технологического процесса синтеза аммиака в Visual Basic 6.0

 

Однако важно отметить что программный код не так уж и легко писать даже в случае двумерной визуализации. Для того чтобы отобразить поток жидкости в трубах использовался казалось несложный, но все же объемный нижеприведенный код:

 


Private Sub Timer1_Timer()

    Picture21(n).Visible = False

    Picture21(n - 1).Visible = True

    Picture26(n).Visible = False

    Picture26(n - 1).Visible = True

    Picture27(n).Visible = False

    Picture27(n - 1).Visible = True

    Picture28(n).Visible = False

    Picture28(n - 1).Visible = True

    Picture30(n).Visible = False

    Picture30(n - 1).Visible = True

    Picture31(n).Visible = False

    Picture31(n - 1).Visible = True

    Picture32(n).Visible = False

    Picture32(n - 1).Visible = True

    Picture25(n).Visible = False

    Picture25(n - 1).Visible = True

    Picture35(n).Visible = False

    Picture35(n - 1).Visible = True

    n = n - 1

    If n = 0 Then

    n = 4

    End If

End Sub


 

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

Также можно сказать что одно только управление уровнем сепаратора имеет очень объемный код, поскольку уровень сепаратора управляет дополнительным режимом двигателя и сигналом аварии. Ниже приведен отрезок программного кода где в одном событии привязаны несколько агрегатов, что намного усложняет программный код:

   


Private Sub Timer2_Timer()

    If Shape1.Height >= 300 And Check6.Value = Unchecked Then Picture13.Visible = True

    If Shape1.Height < 300 Or Check6.Value = Checked Then Picture13.Visible = False

    If Check6.Value = Unchecked Then

    Picture17(3).Visible = False

    Picture3.Visible = False

    End If

    If Check6.Value = Checked Then

    Picture17(3).Visible = True

    tt = -5

    Picture3.Visible = True

    If Shape1.Height < 20 Then tt = 0

    End If

    If Shape1.Height >= 1300 Then

    Picture12.Visible = True

    Else: Picture12.Visible = False

    End If

    If Shape1.Height >= 1800 Then

    Picture2.Visible = True

    Else: Picture2.Visible = False

    End If

   

    If Check1.Value = Checked Then

    x = 3

    D32a = Shape1.Height

    Shape1.Height = Shape1.Height + tt + x

    Shape1.Top = Shape1.Top - tt - x

    D33a = Shape1.Height

    If Shape1.Height < 20 Then

    tt = 0

    x = 0

    End If

    End If

    If Check1.Value = Unchecked Then

    D32a = Shape1.Height

    Shape1.Height = Shape1.Height + tt

    Shape1.Top = Shape1.Top - tt

    D33a = Shape1.Height

    End If

    If Shape1.Height <= 1300 Then

        Picture17(2).Visible = False

        Picture44.Visible = False

        End If

    If Shape1.Height > 1800 Then

        tt = -5

        Picture44.Visible = True

        Picture17(2).Visible = True

        End If

    If Shape1.Height > 1300 And Check1.Value = Unchecked Then

        tt = -5

        Picture5.Visible = True

        End If

    If Shape1.Height < 300 And Check1.Value = Unchecked Then

        tt = 5

        Picture5.Visible = False

        Picture17(2).Visible = False

        End If

    If Shape1.Height > 1300 Then Picture5.Visible = True

    If Text7.Text - Text6.Text >= 50 Then

    Picture7.Visible = True

    Timer9.Enabled = False

    If Check3.Value = cheked Then Timer3.Interval = 100

    If Check3.Value = uncheked Then Timer13.Interval = 100

    Timer15.Interval = 100

    Text8.Text = 0

    SRN = True

    End If

    If SRN = True And Text7.Text - Text6.Text < 50 Then

    Timer9.Enabled = True

    If Text8.Text > 60 Then

        Timer3.Interval = 300

        Timer15.Interval = 300

        Timer13.Interval = 300

        Picture7.Visible = False

        Text8.Text = 0

        SRN = False

        End If

    End If

End Sub


 

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

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

-      Возможность загрузки трёхмерных моделей из файла какого-либо распространенного формата, как-то 3ds, VRML, stl и т.д.

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

-      Достойное качество картинки, на современном персональном компьютере;

-      Относительная простота для написания и понимания сценария анимации [1].

В трехмерной визуализации для множество 3D моделей описываются начальные состояния в XML файле и размещаются в виртуальном мире с учетом внешней среды. Далее множество объектов приводятся в действие посредством разработанного сценария в зависимости от событий и данных внешней среды. Рассмотрим некоторый сценарий:

 

         Sub On_SomeActiveX_Event

         MoveLineobject1”, 100, 0, 0, 150, 1150

         Rotateobject1.subObject1”, 0, 90, 0, 1000, 1700

end sub

 

В данном примере при срабатывании события Event элемента управления SomeActiveX происходит следующее. Через 150 мс объект “object1” начинает движение, и в течение 1 с, т.е. до того как пройдёт 1150 мс от момента события, будет равномерно двигаться вдоль оси Х и пройдёт 100 единиц. За 150 мс до окончания движения подобъект subObject объекта Object1 начнёт поворачиваться на 90 градусов вокруг оси Y. Поворот закончится через 0,7 с после начала поворота.

Казалось бы несложный код для подобного рода операций. Однако важно учитывать трудоемкость построения трехмерной модели объекта. Например, построение 3D модели манипулятора загрузки металлических листов изображенный на рисунке 2 заняло около 4-х недель с учетом освоения особенностей программы 3D max. Довольно трудоемкая работа для визуализации несложных и простых технологических процессов. Однако в целях обучения представление информации в трехмерном виде очень хорошо помогает быстро освоить материал, ввиду того что наше зрительное восприятие устроено так, что мы изначально пытаемся увидеть сходства и различия в том, что видим.

C:\Users\Almat\Desktop\рис.jpg

Рисунок 2 – Трехмерная модель манипулятор загрузки металлических листов в среде 3D Max

 

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

Эти принципы восприятия дают нам ключ к пониманию того, как мы группируем информацию. Например, как объекты, которые расположены рядом друг с другом, группируются нами по признаку близости, также как одинаковые объекты группируются нами по признаку схожести.

На сегодняшний день существуют множество специальных программ для трехмерной визуализации. Существуют также SCADA-системы с трехмерной визуализацией, такие как пакет GraphWorX64 в Genesis64. Пакет GraphWorX64 предназначен для разработки, визуализации и навигации в экранных формах АСУ ТП для наиболее реалистичного отображения объектов на экране. Эти технологии позволяют создавать 3D-модели предприятия, которые оперативно и точно отображают состояние объектов при использовании функций навигации виртуальной камеры с предоставлением быстрого доступа к любой необходимой информации. Использование динамических объектов делает возможным мгновенно обратить внимание на важные события и решать проблемы непосредственно через встроенные инструменты управления других экранных форм и 3D-объектов. К примеру, технологический процесс, изображенный на рисунке 3, отображен в трехмерной среде  [3].

http://support.elmark.com.pl/iconics/10.7/genesis64/GraphWorX64-2.png

Рисунок 3 – Технологический процесс в пакете GraphWorX64

 

В отличие от обычных программных средств трехмерной визуализации в пакете GraphWorX64 уже содержатся готовые узлы и агрегаты различных трехмерных объектов в библиотеке программы. Однако в отличие от обычных программ визуализации данная программа ориентирована на  принципы сбор, хранение, обработку (или переработка), а также выдаче значительных объемов информации. Стоимость подобной программы также является заоблачной для визуализации в образовательных целях.

 

Выводы:

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

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

3.   На сегодняшний день трехмерное представление информации является наиболее приемлемым, как показывает практика.

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

5.   Наиболее приемлемым в образовательных целях является отдельная прорисовка 3D моделей и объединение их с помощью программ как AutoCAD Inventor или SolidWorks.

 

Литература:

1.   Бараковских Н.И. Визуализация производственных процессов. International Conference Graphicon 2006, Novosibirsk Akademgorodok.

2.   Коломієць В.О., студент, керівники Дубовик В.Г., Лебедєв Л.М.  Визуализация 3D моделей электромеханических комплексов. Управління елетротехнічними комплексами. Управління електротехнічними комплексами 2010, Людина.

3.   www.iconics.com