Научная статья на тему 'Модернизация программного модуля "Загрузка данных для интеллектуальной модели"'

Модернизация программного модуля "Загрузка данных для интеллектуальной модели" Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
150
34
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНЫЙ МОДУЛЬ / SOFTWARE MODULE / МОДЕРНИЗАЦИЯ / MODERNIZATION / ИНТЕЛЛЕКТУАЛЬНАЯ МОДЕЛЬ / INTELLIGENT MODEL / МАССИВЫ ДАННЫХ / DATA SETS / НЕЛИНЕЙНЫЕ ТЕХНИЧЕСКИЕ СИСТЕМЫ / NON-LINEAR TECHNICAL SYSTEMS / ПРОГРАММНЫЙ ПРОДУКТ / SOFTWARE PRODUCT

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Энгель Екатерина Александровна, Энгель Никита Евгеньевич

В статье рассматриваются особенности процесса модернизации программного модуля «Загрузка данных для интеллектуальной модели» на языке C#. Приводится описание модернизации указанного модуля для работы с данными формата xls. Предлагается сравнительный анализ программных средств моделирования сложных технических систем, выявлены их достоинства и недостатки. Внимание обращается также на особенности технической загрузки информации в реализованную на языке программирования C# программу для обработки её интеллектуальной моделью.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Modernization of the Software Module "Downloading Data for the Intelligent Model" in C # Language

The article considerspeculiar features of modernization of the software module "Loading data for the intelligent model" in C# language. The authors describe the modernization of the module to work with xls data. The comparative analysis of the software means of modeling complex technical systems reveals their advantages and disadvantages. An attention is also drawn to the features of technical loading of information into the program implemented in the C# programming language for processing it with an intelligent model.

Текст научной работы на тему «Модернизация программного модуля "Загрузка данных для интеллектуальной модели"»

УДК 656.1/.5

МОДЕРНИЗАЦИЯ ПРОГРАММНОГО МОДУЛЯ «ЗАГРУЗКА ДАННЫХ ДЛЯ ИНТЕЛЛЕКТУАЛЬНОЙ МОДЕЛИ»*

Е. А. Энгель, Н. Е. Энгель

Хакасский государственный университет им. Н. Ф. Катанова

В статье рассматриваются особенности процесса модернизации программного модуля «Загрузка данных для интеллектуальной модели» на языке C#. Приводится описание модернизации указанного модуля для работы с данными формата xls. Предлагается сравнительный анализ программных средств моделирования сложных технических систем, выявлены их достоинства и недостатки. Внимание обращается также на особенности технической загрузки информации в реализованную на языке программирования C# программу для обработки её интеллектуальной моделью.

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

Модели и методы моделирования технических систем образуют новую виртуальную реальность, являющуюся новым видом информационной производственной деятельности технических систем, возникшим в результате развития интеллектуальных технологий управления. Современные нелинейные технические объекты (в том числе многорежимные, состоящие из семейства разнородных структурных или функциональных подсистем) работают в условиях постоянно изменяющихся климатических, нагрузочных и случайных воздействий. Кроме того, указанные объекты являются сложными, вследствие чего управление ими классическими методами в условиях воздействия различных внешних и внутренних факторов неопределённости затруднено, в то время как интеллектуальные методы обеспечивают требуемое качество управления.

В работе [1] описаны интеллектуальные Simulink Matlab модели нелинейных технических объектов, результаты моделировании которых в среде Simulink Matlab подтвердили их эффективность в сравнении с системой управления на основе ПИД-регулятора в условиях случайных возмущений и резкого изменения внешних воздействий. Однако использование Simulink Matlab моделей в рамках самостоятельной работы студентов оказалось невозможным по причине высокой стоимости программного продукта Simulink Matlab. В силу того, что коммерческий программный продукт Matlab/Simulink является достаточно дорогим, дальнейшим этапом данного исследования был анализ программных продуктов, выполняющих те же функции, что и Matlab/Simulink, и позволяющих моделировать работу сложных технических систем.

Остановимся далее на сравнительном анализе программных средств моделирования сложных технических систем.

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

а) VisSim - визуальный язык программирования, предназначенный для моделирования динамических систем, разработанный американской компанией Visual Solutions;

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

в) Jigrein - редактор чертежей моделей сложных технических систем. Недостатком данного продукта является отсутствие поддержки работы с данными (нельзя сохранить данные в виде файла, прочитать данные из файла). Кроме этого, программа обеспечивает только графический результат моделирования.

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

Наиболее близким бесплатным аналогом Matlab/Simulink является GNU Octave - свободно распространяемая система для математических вычислений, при этом синтаксис его языка идентичен синтаксису языка Matlab. Однако визуализировать моделирование сложной технической системы в Octave чрезвычайно затруднительно, поскольку Octave - консольная программа.

Scilab/Xcos и Scicos - это мощное открытое средство для инженерных и научных расчётов и самая полная общедоступная альтернатива Matlab. Xcos и Scicos - инструменты для редактирования блочных диаграмм и симуляции (аналоги Simulink в пакете Matlab). В состав пакета входит утилита, позволяющая конвертировать документы Matlab в Scilab. К Достоинствам Scilab следует отнести: открытость; функциональность; большое количество справочной информации; программирование алгоритмов через встроенный процедурный язык; поддержка языков высокого уровня (Си, Фортран), то есть программирование без жёсткой привязки к языку; работа в режиме интерпретатора; малый объём, занимаемый на жёстком диске. Недостатком системы Scilab является достаточно малое количество инструментов в Xcos для построения схем, что усложняет разработку специфических и сложных систем нелинейных технических объектов.

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

* Работа выполнена при поддержке РФФИ, проекты № 18-48-190004 р_а и № 18-58-00039 Бел_а; программы Erasmus+, проект 600200-ЕРР-1-2018-1 -RU-EPPJMO-MODULE.

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

Одним из авторов данной статьи разработаны и реализованы три программы для ЭВМ [2; 3; 4]. При создании программы использована Visual Studio - интегрированная среда разработки приложений компании Microsoft на языке C#, которая предоставляет программисту набор инструментов создания приложений для Windows на Visual C++ и Visual C#. Описание интеллектуальной модели [2; 3; 4] выходит за рамки настоящего исследования, тем более она подробно описана в наших статьях [5; 6]. Перечисленные в работах [2; 3 4] программы использовали для загрузки данных формата txt. Однако для удобства и расширения круга приложений разработанных для ЭВМ программ потребовалось использовать наиболее распространённые форматы xls.

Цель нашего исследования заключается в описании процесса модернизации программного модуля «Загрузка данных для интеллектуальной модели» для работы с данными формата xls. Помимо этого, специальное внимание уделяется техническим аспектам загрузки информации в программу для её обработки интеллектуальной моделью, реализованной на языке программирования C#.

Архитектура программ для ЭВМ [2; 3; 4], разработанная по блочно-модульному принципу, реализует интеллектуальную модель управления нелинейным техническим объектом. Блочно-модульный принцип разработки архитектуры указанных программ для ЭВМ обеспечивает их гибкость и лёгкую модифицируемость, простоту добавления новых и модернизацию существующих модулей, в том числе обеспечивающих вспомогательные функции, например модуля бесконтактной верификации оператора (описание которого выходит за рамки настоящей статьи).

Ядро разработанного ПО спроектировано как интеллектуальная модель управления нелинейным техническим объектом. Иначе говоря, модуль технического объекта является внешним и легко может быть заменён любым модулем, реализующим нелинейный технический объект. Указанная особенность проектирования ПО обеспечивает простоту реализации интеллектуальной модели управления для любого технического объекта. Блочно-модульная архитектура программ для ЭВМ, представленная в виде блок-схемы, реализованной средствами Microsoft Visio, имеет многоуровневую иерархию и состоит из трёх модулей (рис. 1). Центральным модулем ПО является интеллектуальная модель управления. Детальное описание разработанного модуля интеллектуальной модели управления выходит за рамки настоящей статьи.

МОДУЛЬ ЗАГРУЗКИ ДАННЫХ ИНТЕЛЛЕКТУАЛЬНАЯ МОДЕЛЬ УПРАВЛЕНИЯ МОДУЛЬ НЕЛИНЕЙНОГО ТЕХНИЧЕСКОГО ОБЪЕКТА

Рис. 1. Архитектура программ для ЭВМ «Интеллектуальный регулятор нелинейной технической системы» и «Интеллектуальная система прогнозирования состояния нелинейного технического объекта»

В ходе исследования нами модернизирован программный модуль «Загрузка данных для интеллектуальной модели» на языке C#. Указанный модуль является вспомогательным для программ [2; 3; 4], тем не менее он играет существенную роль в организации работы интеллектуальной модели управления нелинейным техническим объектом. К нему предъявляются повышенные требования, в частности, к быстродействию загрузки данных, универсальности и простоте реализации. Интерфейс программного модуля «Загрузка данных для интеллектуальной модели» интуитивно понятен и прост (рис. 2, 3, 4).

В качестве среды программирования при разработке модуля «Загрузка данных для интеллектуальной модели» был выбран программный продукт Visual Studio C# 2013 из-за его удобства и функциональности. Указанный модуль реализован как блок программы для ЭВМ «Интеллектуальная система почасового прогнозирования состояния нелинейного технического объекта» на языке программирования С#. Программа предназначена для интеллектуального почасового прогнозирования состояния нелинейного технического объекта.

К основным задачам, решаемым модулем «Загрузка данных для интеллектуальной модели», относятся следующие:

□ загрузка данных из файла формата xlsx;

□ обработка данных;

□ пополнение архива текущими данными.

Для реализации задачи загрузки данных из файла формата xlsx была использована дополнительная библиотека C#, специально предназначенная для работы с файлами xls, xlsx, csv. Фрагмент кода подключения указанной библиотеки выглядит следующим образом: using Excel = Microsoft.Office.Interop.Excel.

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

Рис. 2. Интерфейс программного модуля «Загрузка данных для интеллектуальной модели»

Рис.3. Главная форма программы для ЭВМ «Интеллектуальная система почасового прогнозирования состояния

нелинейного технического объекта»

Рис. 4. Форма выбора файла обновления Фрагмент кода процедуры открытия файла и считывания данных из него выглядит следующим образом:

private void button1_Click(object sender, EventArgs e)

{

OpenFileDialog open_dialog = new OpenFileDialog();

if (open_dialog.ShowDialog() == DialogResult.OK)

{

sch++;

try

{

full_name_of_xlsx = open_dialog.FileName;

}

catch

{

DialogResult rezult = MessageBox.Show("Impossible to open selected file", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

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

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

var excelApp = new Excel.Application(); var excelappworkbooks = excelApp.Workbooks;

var excelappworkbook = excelApp.Workbooks.Open(@full_name_of_xlsx);

var excelsheets = excelappworkbook.Worksheets;

var excelworksheet = (Excel.Worksheet)excelsheets.get_Item(2).

Для реализации задачи пополнения архива на форму была добавлена кнопка для пополнения архива путём записи в него массива данных, считанных из файла. Фрагмент кода процедуры пополнения архива выглядит следующим образом:

private void button4_Click_1(object sender, EventArgs e)

{

string[] doprows = new string[19*3];

string[] rows = File.ReadAllLines(Form4.full_name_of_TXT); StreamWriter saw = new StreamWriter(Form4.full_name_of_TXT);

for (int i = 0; i <= rows.Length-19*3-1; i++)

{

saw.WriteLine(rows[i]);

}

int k = 0;

for (int i = rows.Length-19*3; i <= rows.Length-1; i++)

{

doprows[k] = rows[i]; k++;

}

saw.Close();

using (StreamWriter sw = File.AppendText(Form4.full_name_of_TXT))

{

for (int i = 0; i <= 18; i++)

{

sw.WriteLine(); sw.Write(doprows[i].Replace('#', ';'));

for (int j = 0; j <= 7; j++)

{

if (j == 7)

{

sw.Write(Form5.InpD[j, i]);

}

else

sw.Write(Form5.InpD[j, i] + ";");

}

sw.Write("#"); sw.WriteLine();

}

}

using (StreamWriter sw = File.AppendText(Form4.full_name_of_TXT))

{

for (int i = 19; i <= doprows.Length-1; i++) sw.WriteLine(doprows[i]);

}

using (StreamWriter sw = File.AppendText(Form4.full_name_of_TXT))

{

for (int i = 0; i < 19; i++)

{

for (int j = 0; j < 12; j++)

{

if (j == 11)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

{

sw.Write(Ip1[i, j]);

}

else

sw.Write(Ip1[i, j] + ";");

}

sw.Write("#"); if (i < 18) { sw.WriteLine(); }

}

}

Application.Exit();

}

}

}

Во фрагменте кода, представленном выше, происходит запись массива данных в текстовый файл - архив с данными.

В заключение констатируем основные положения проведённого исследования.

Использование разработанного программного модуля «Загрузка данных для интеллектуальной модели» позволяет организовать функциональное взаимодействие учёта больших массивов данных.

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

Указанная автоматизация необходима для автоматической настройки интеллектуальной системы управления и прогнозирования состояния нелинейного технического объекта Модернизированный программный модуль «Загрузка данных для интеллектуальной модели» обеспечивает в режиме онлайн-обработку больших массивов данных SCADA нелинейного технического объекта.

Библиографический список

1. Engel, E. A. Intelligent control of PV system on the basis of the fuzzy recurrent neuronet / E. A. Engel, I. V. Kovalev, N. E. Engel // IOP Conference Series: Materials Science and Engineering, 2016. - Volume 122.

2. Энгель, Е. А. Мультиагентная адаптивная нечёткая нейросеть / Е. А. Энгель. - Свидетельство о государственной регистрации программы для ЭВМ № 2016662951. - М.: РОСПАТЕНТ, 2016.

3. Энгель, Е. А. Интеллектуальный регулятор нелинейной технической системы / Е. А. Энгель. - Свидетельство о государственной регистрации программы для ЭВМ № 2016663467. - М.: РОСПАТЕНТ, 2016.

4. Энгель, Е. А. Интеллектуальная система прогнозирования состояния нелинейного технического объекта / Е. А. Энгель. - Свидетельство о государственной регистрации программы для ЭВМ № 2016663468. - М.: РОСПАТЕНТ, 2016.

5. Engel, Е. А. Sizing of a Photovoltaic System with Battery on the Basis of the Multi-Agent Adaptive Fuzzy Neuronet / E. A. Engel // International Conference on Engineering and Telecommunication (EnT). - Moscow, 2016. - S. 49-54.

6. Engel, E. A. Solar Irradiance Forecasting Based on the Multi-agent Adaptive Fuzzy Neuronet / E. A. Engel, I. V. Kovalev // Tan Y., Takagi H., Shi Y., Niu B. (eds) Advances in Swarm Intelligence. ICSI 2017. Lecture Notes in Computer Science, vol 10386. Springer, Cham, 2017. -S. 135-140.

© Энгель Е. А., Энгель Н. Е., 2018

УДК 004.031.2:656.056.4

ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ СЕТЬЮ СВЕТОФОРОВ*

Е. А. Энгель, Н. Е. Энгель

Хакасский государственный университет им. Н. Ф. Катанова

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

Ключевые слова: сеть светофоров, интеллектуальная система, автоматическое управление, управление транспортными потоками, онлайн-режим.

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

Вопросам разработки эффективности различных методов управления транспортными потоками, закономерностям их поведения в условиях дорожно-уличной сети посвящены работы Д. Дрю, Х. Иносе, Т. Хамада, В. Сильянова, Ф. Хейта и др [1-10]. В последние десятилетия в отечественной практике управления транспортными потоками на улично-дорожной сети города накоплен значительный опыт, научные и методологические основы которого обобщены в работах В. В. Зырянова [11], В. Т. Капитанова [12], Г. И. Клинковштейна [13], М. П. Печерского и М. В. Яшиной [14] и др.

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

Система автоматического управления сетью светофоров представляет классический пример сложной системы с характерными свойствами, к числу которых относятся:

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

□ многофункциональность компонентов системы;

□ многокритериальность, объясняемая имманентностью (несовпадением) целевых функций отдельных компонентов системы;

* Работа выполнена при поддержке РФФИ, проекты № 18-48-190004 р_а и № 18-58-00039 Бел_а; программы Erasmus+, проект 600200-ЕРР-1-2018-1 -RU-EPPJMO-MODULE.

i Надоели баннеры? Вы всегда можете отключить рекламу.