Рубрика:
Наука и технологии
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
НИКОЛАЕВ П.Л., преподаватель, Московский авиационный институт (национальный исследовательский университет), г. Москва, npavel89@gmail.com
ХОРОШКО Л.Л., к.т.н., доцент, Московский авиационный институт (национальный исследовательский университет), г. Москва, khoroshko@mati.ru
Представление кодированными деревьями сценариев системы управления интеллектуального здания
В работе предложена модель представления сценариев (управляющих алгоритмов), осуществляющих работу системы управления интеллектуального здания. На основе предлагаемой модели в дальнейшем планируется программная реализация среды, предназначенной для визуального программирования алгоритмов функционирования систем умного дома. В рамках исследования детально разобраны определение и структура сценариев на основе примера. Также рассмотрен способ задания сценариев в виде деревьев, закодированных кодом Прюфера
Введение
Одним из важных элементов любой управляющей системы умного дома является программирование сценариев, обеспечивающих его функционирование. В системах управления интеллектуальными зданиями сценариями называются алгоритмы работы как отдельных подсистем, так и всей управляющей системы здания (дома или квартиры). Например, могут существовать отдельные сценарии управления освещением, тепловым режимом как для определенного помещения, сразу для нескольких помещений, так и для всего здания илидома.
В современных домах применяется все больше интеллектуальных устройств, но из-за разнообразия программирование их всех становится трудной задачей [1].
Среднестатистическому пользователю, не умеющему программировать либо не обладающему всеми необходимыми знаниями и навыками, необходим такой инструмент, который позволил бы довольно просто и быстро создавать и редактировать различные сценарии.
Наилучшим способом для этого является визуальное программирование. Под этим термином подразумевается способ образного графического представления (используются графические элементы и фигуры) разрабатываемого алгоритма, который более естественен для восприятия человека [2, 3].
Визуальное программирование позволяет избежать множества ошибок и значительно сократить время реализации алгоритмов. Применительно к интеллектуальным зданиям этопозволит уменьшить возможные отказы систем из-за каких-либо ошибок, которые можно допустить при классическом программировании.
Авторами работы планируется программная реализация системы визуального программирования сценариев, в которой программирование будет осуществляться путем правильной расстановки графических блоков.
В данном исследовании мы рассмотрим способ представления сценариев, создаваемых в такой системе визуального программирования.
Структура сценариев
С точки зрения формального строения сценарий – это набор действий, выполняемых при наступлении определенных событий. Приведем пример сценария по управлению тепловым режимом в помещении.
При уменьшении температуры в помещении до определенного значения (допустим, T1 <= 15) и присутствии в комнате человека (срабатывает датчик присутствия, S1 == истина) необходимо выполнить несколько действий:
- Дляначала нужно проверить состояния окна (A1) икондиционера (A2). Если окно открыто, очем свидетельствует состояние геркона (S2== истина) иливключен кондиционер (A2== истина), тонеобходимо выполнить еще ряд действий.
- Проверить состояние штор, и если они закрыты (A3 == ложь), то открыть их (A3 = истина), иначе невозможно будет закрыть окно, а затем уже закрыть окно (A1 = ложь).
- Выключить кондиционер (A2 = ложь).
- В ситуации, когда окно закрыто и кондиционер выключен, следует проверить состояние обогревателя (A4), и если он выключен, то включить его (A4 = истина).
На псевдокоде данный сценарий можно записать так:
сценарий 1
если (T1<= 15 и S1) то
если (S2 или A2) то
если (не A3) то A3 = истина;
A1 = ложь;
A2 = ложь;
иначе
если (не A4) то A4 = истина;
По сути, любой сценарий может записать с помощью языковой условной конструкции «если-то-иначе». Помимо условной конструкции сценарии должны состоять из набора операций, переменных и отношений между ними. В итоге получим следующие возможные составляющие сценария:
- условная конструкция «если-то-иначе»;
- переменные (логические, числовые и текстовые), отображающие состояния устройств и передаваемые ими данные;
- логические операторы (и, или, не, исключающее или);
- операторы сравнения (больше, меньше, больше/меньше или равно, равно, не равно);
- операторы циклов;
- специальные функции (таймер, вывод текстового сообщения, вывод изображения).
В условной конструкции в «если» задается условие выполнения сценария – события, при котором задаваемый сценарий должен активироваться. В «то» задаются действия, которые должны быть запущены при выполнении условия. А в «иначе» (не является обязательным) задаются действия, которые должны быть запущены при невыполнении условия.
Подробнее рассмотрим возможные типы переменных. В качестве логических определим переменные, отображающие состояния устройств, которые могут иметь только два значения: «истина» (устройство находится в активном состоянии) и «ложь» (устройство находится в неактивном состоянии). Это могут быть различные датчики (датчики движения, датчики освещенности, герконы), кнопки и управляемые устройства (устройства освещения, розетки).
В качестве числовых определим переменные, предназначенные для отображения числовых данных, поступающих от измерительных датчиков, а также передаваемых науправляемые устройства. В первом случае это могут быть температурные датчики (передают значения температуры), датчики влажности, концентрации газа и т.п. А во втором случае – к примеру, диммеры, используемые для изменения яркости подключенных устройств освещения в зависимости от изменения электрической мощности.
В качестве текстовых определим переменные, отображающие состояния устройств и передаваемые ими данные в текстовом виде. Например, жалюзи могут передавать следующие данные: «открыты», «закрыты», «открываются», «закрываются».
Представление сценариев
Структурно условную конструкцию можно представить в виде дерева. При визуальном программировании блок будет являться одной из вершин дерева, а связанные блоки будут образовывать ребра дерева. Преимущества представления алгоритма в виде дерева:
- легко читаемое и компактное представление данных;
- уменьшение количества возможных ошибок ввиду наглядного представления данных;
- упрощение внесения изменений в сценарий ввиду того же наглядного представления данных и возможности более быстрого поиска необходимых компонентов;
- также можно отметить, что представленный в форме дерева сценарий в дальнейшем будет легче преобразовать в код, т.к. при генерации кода необходимо строить абстрактное синтаксическое дерево.
Для рассмотренного выше примера сценария построено дерево, представленное на рис. 1.
Рисунок 1. Представление сценария системы управления интеллектуального здания в виде дерева
Порядок нумерации вершин совершенно неважен, будем присваивать номера автоматически в порядке добавления элементов.
Кодирование деревьев
Согласно [4, 5] существует несколько способов представления деревьев: представление с помощью матрицы смежности, представление с помощью списков смежности, представление с помощью списка ребер и кода Прюфера, уровневый код, десятичная кодировка. Наиболее оптимальным способом кодировки деревьев является код Прюфера [4, 5]. Рассмотрим принцип работы данного способа кодирования.
Дерево T, состоящее из множества вершин {ν1,ν2,...,νn}, где n – количество вершин, задается списком ребер (νi,νj), где νi и νj – связанные вершины, i,j ∈ [1,n] i≠j. Код Прюфера – это последовательность P(T) = [a1,a2,…,a(n-2)], которая формируется по следующему алгоритму [5, 6]:
Повторять от 1 до n-2 раза (пока не останется одно ребро):
- Найти висячую вершину (лист) с минимальным номером νi.
- Записать в код Прюфера вершину νj, смежную с νi.
- Удалить вершину νi и ребро (νi,νj) из дерева.
На основе вышеизложенного сформируем алгоритм создания сценария:
- Сценарий записывается как множество ребер дерева T = {ν1,ν2,...,νn}.
- Создается последовательность B = {b1,b2,...,bn}, куда записываются значения вершин дерева (блоков) в порядке, соответствующем номерам вершин.
- Дерево кодируется кодом Прюфера, который записывается в последовательность P(T).
- Итоговыми выходными данными после завершения процесса создания сценария будут две последовательности: B со значениями блоков, из которых состоит сценарий, и P(T), где записан код Прюфера для этого сценария.
Список ребер дерева для сценария из нашего примера:
- (1, 2)
- (2, 5)
- (3, 1)
- (4, 1)
- (5, 6)
- (6, 7)
- (7, 8)
- (5, 9)
- (3, 10)
- (10, 11)
- (11, 12)
- (11, 13)
- (3, 14)
- (14, 15)
- (14, 18)
- (15, 16)
- (16, 17)
- (18, 19)
- (19, 20)
- (20, 21)
- (14, 22)
- (22, 23)
- (23, 24)
- (14, 25)
- (25, 26)
- (26, 27)
- (4, 28)
- (28, 29)
- (29, 30)
- (4, 31)
- (31, 32)
- (32, 33)
- (33, 34)
Список значений вершин:
- сценарий 1
- если
- то
- иначе
- и
- T1
- <=
- 15
- S1
- если
- или
- S2
- A2
- то
- если
- не
- A3
- то
- A3
- =
- истина
- A1
- =
- ложь
- A2
- =
- ложь
- если
- не
- A4
- то
- A4
- =
- ложь
Для нашего сценария код Прюфера будет следующим
- 7
- 6
- 5
- 5
- 2
- 1
- 11
- 10
- 3
- 16
- 15
- 14
- 20
- 19
- 18
- 14
- 23
- 22
- 14
- 26
- 25
- 14
- 3
- 1
- 4
- 29
- 28
- 4
- 32
- 32
- 33
Далее при помощи специального парсера можно раскодировать дерево и сгенерировать код для интеграции сценария на том языке программирования, на котором реализовано программное обеспечение системы управления интеллектуального здания. Также дерево можно раскодировать для редактирования сценария.
На основе предложенного в статье способа представления сценариев, обеспечивающих функционирование систем управления интеллектуальными зданиями, планируется разработать среду визуального программирования сценариев. Визуальная среда разработки будет являться частью специализированного облачного сервиса. Данный сервис включает в себя серверную и клиентскую части, что предполагает передачу данных между ними по сети Интернет. Представление сценариев в виде деревьев, закодированных кодом Прюфера, позволит достичь нескольких результатов.
Во-первых, передача данных об алгоритме и его хранение в закодированном виде в базе данных позволят сократить объем передаваемых и хранимых данных. Кодировка деревьев относится к задаче сжатия информации, а компактная запись дерева, полностью описывающая его структуру, может существенно упростить передачу информации о дереве и работу с ним [5].
Во-вторых, кодирование дерева позволит повысить безопасность передаваемых данных. В случае перехвата злоумышленниками передаваемых данных о сценариях с целью повреждения работоспособности систем умного дома или с целью проникновения в сеть здания у них могут возникнуть проблемы с расшифровкой кодированных сценариев из-занеосведомленности об используемых способах представления данных.
- Serna M., Sreenan C., Fedor S. A visual programming framework for wireless sensor networks in smart home applications. // Proceedings of the 2015 IEEE Tenth International Conference on Intelligent Sensors, Sensor Networks and Information Processing (ISSNIP), Singapore, 7-9 April 2015. – P. 1-6.
- Visual Programming Language (VPL) [Электронный ресурс]. – URL: https://www.techopedia.com/definition/22855/visual-programming-language-vpl.
- Коварцев А.Н. Методы и средства визуального параллельного программирования. Автоматизация программирования: учеб. / А.Н. Коварцев, В.В. Жидченко. – Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2011. – 168 с.
- Касьянов В. Н., Евстигнеев В. А. Графы в программировании: обработка, визуализация и применение. – СПб.: БХВ-Петербург, 2003. – 1104 с.
- Кирсанов М. Н. Графы в Maple. Задачи, алгоритмы, программы. – М.: Издательство ФИЗМАТЛИТ, 2007. – 168 с.
Ключевые слова: умный дом, интеллектуальное здание, визуальное программирование, кодирование деревьев, код Прюфера.
Representation of scenarios of intelligent building management system by coded trees
Nikolaev P.L., Lecturer of Moscow Aviation Institute (National Research University), Moscow, npavel89@gmail.com
Khoroshko L.L., Ph.D, associate professor of Moscow Aviation Institute (National Research University), Moscow, khoroshko@mati.ru
Abstract: In this paper the model of representation scenarios (control algorithms) which are implementing the work of intelligent building management system is offered. On the basis of the proposed model a software implementation of the environment for visual programming of algorithms for the operation of smart home systems is planned further. In this research the definition and structure of the scenarios based on the example are analyzed in detail. Also the way of representation scenarios in the form of trees coded by Prufer code is considered.
Keywords: smart home, intelligent building, visual programming, tree coding, Prufer code.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|