Сайт Волгунова Андрея

Категории

Мои статьи [10]

Новые файлы

[14.01.2015][Мои файлы]
Реконструкция системы уличного освещения города Дзержинска (0)
[04.10.2014][Мои файлы]
Концепция работы системы управления источниками электроэнергии, объединенными в единую электрическую сеть на стороне потребителя (0)
[04.10.2014][Мои файлы]
К вопросу о нормировании качества электроэнергии (0)

Новые статьи

[07.04.2015][Мои статьи]
Предпосылки использования языка программирования Python для выполнения электротехнических расчетов и обучения студентов направления «электро (0)
[14.01.2015][Мои статьи]
Реконструкция системы уличного освещения города Дзержинска (0)
[22.10.2014][Мои статьи]
Проблемы работы источников электроэнергии объединенных в единую электрическую сеть на стороне потребителя (0)

Каталог статей

Главная » Статьи » Мои статьи

Предпосылки использования языка программирования Python для выполнения электротехнических расчетов и обучения студентов направления «электро

Автор: Волгунов А.Д.

Ссылка на статью в E-Library

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

В научной деятельности специалистов направления «Электроэнергетика и электротехника» рано или поздно возникает необходимость разработки ПО для выполнения сложных специализированных расчетов, моделирования разрабатываемых систем или опробования новых методов расчета. Для этого используются такие языки програмирования как C++, Visual Basic или комплекс программного обеспечения MathLab. Базовый курс изучения одного из этих языков программирования обычно предусматривает учебный план подготовки специалистов, бакалавров или магистров по профилю «Электроснабжение».

Использование Visual Basic часто ограничивается созданием макросов обработки таблиц данных для программных продуктов фирмы Microsoft. Использование языка программирования C++ требует глубокого погружения в принципы работы современного ПО (необходимо заботиться о правильном выборе типов переменных, освобождении памяти и прочем). В итоге все это занимает большую часть времени.

Комплекс MathLab значительно менее сложен для освоения, чем C++. MathLab предлагает использовать интерпретируемый язык программирования высокого уровня с множеством различных библиотек, что значительно сокращает время решения типовых задач и значительно упрощает разработку новых алгоритмов. Его удобно использовать для выполнения одиночных расчетов без создания полноценной программы. В состав комплекса MathLab может быть включена среда имитационного моделирования Simulink, позволяющая использовать уже готовые библиотеки блоков для моделирования электросиловых, механических и гидравлических систем.

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

Среди других интерпретируемых языков программирования высокого уровня следует отметить набирающий популярность язык программирования Python. Этот язык обладает такими достоинствами как динамическая типизация, модульность, простота освоения, объектно-ориентированность, автоматическое управление памятью, встроенная поддержка комплексных чисел и другими [1]. Код программы, написанной с использованием данного языка, интуитивно понятен и структурирован. Простота кода Python является одним из принципов программирования, определенных в его стандарте [2].

Python является бесплатным. Кроме того, для него разработано множество бесплатных (для некоммерческого, а часто и для коммерческого использования) модулей, которые значительно облегчают и ускоряют процесс написания программы. Любой разработчик может создать свой модуль или полноценную программу и распространять её на некоммерческой или коммерческой основе. Использование таких модулей, как, например, NumPy, SciPy и Matplotlib, позволяет бесплатно заменить большинство возможностей коммерческого ПО MathLab [3]. Уже разработанные в ПО MathLab модули или функции MathLab можно использовать в Python-программе с помощью связующих модулей. Разработанная в MathLab с использованием Simulink система также может быть использована в Python-программе с помощью интерфейса Simulink SimServer.

Еще одно достоинство Python – это кроссплатформенность, то есть возможность использования Python-программ в практически любых операционных системах (Windows, Linux, Mac OS) и на мобильных устройствах без внесения изменений. Разработка и моделирование различных систем управления с использованием Python позволит в дальнейшем использовать созданные модули непосредственно в современных программируемых логических контроллерах с операционной системой Linux, сокращая таким образом время разработки конечного продукта.

Основным недостатком Python является более низкая скорость выполнения программ на его основе, по сравнению с компилируемыми языками. Однако, скорость выполнения Python-программ зависит от соблюдения его несложных правил при написании кода, простоты кода (например, если большую по объему кода функцию разбить на несколько меньшего размера, то скорость выполнения программы увеличится), использования «быстрых» модулей. Python позволяет использовать функции, написанные на C++, что значительно увеличивает скорость работы программы. Модули, использующиеся для сложных расчетов, такие как NumPy и SciPy, разработаны на C++ и работают так же быстро, как и MathLab. Кроме того, этот язык программирования позволяет создавать многопоточные программы, использующие достоинства многопроцессорных, или многоядерных, систем. Применение динамично развивающегося интерпретатора PyPy, написанного на Python и использующего принципы компилирования в реальном времени, позволяет значительно (в несколько раз) повысить скорость выполнения Python-программы.

С использованием Python, а также модулей PyQt (для построения графического интерфейса), NumPy (для выполнения сложных расчетов) автором данной статьи разработана программа NodeVolt (свидетельство №2014662237 от 26 ноября 2014 г.). Программа предназначена для выполнения расчетов обычных разветвленных электрических цепей и трехфазных симметричных электрических цепей. Программа NodeVolt используется для выполнения расчетов систем электроснабжения, а отдельные её модули для разработки ПО оптимизации режимов работы систем электроснабжения.

Все это, а в первую очередь простота освоения и высокая скорость разработки программ, позволяет говорить о широких возможностях применения Python для разработки прикладного ПО, моделирования разрабатываемых систем, научных расчетов. Python может быть использован не только для разработки готового целостного ПО, но и для одиночных расчетов или обработки любых объемов информации из баз данных и файлов различных форматов (XML, CSV, JSON и других).

Опыт автора данной статьи и авторов статей [3], [4] и [5] подтверждает целесообразность применения языка программирования Python в качестве основного при обучении студентов технических специальностей. Этот язык программирования позволяет быстро освоить основы программирования и использовать его в дальнейшей профессиональной деятельности.

Список использованной литературы:

  1. Python for Beginners // Communications of the ACM / March 2015 – Volume 58, Number 3, pp. 19-21.
  2. PEP 20 - The Zen of Python [Электронный ресурс] // Python [Офиц. сайт]. URL: https://www.python.org/dev/peps/pep-0020/ (дата обращения: 23.02.2015).
  3. Hoyt Koepke. 10 Reasons Python Rocks for Research [Электронный ресурс] // URL: http://www.stat.washington.edu/~hoytak/blog/whypython.html (дата обращения: 23.02.2015).
  4. H. Fangohr. A Comparison of C, MATLAB, and Python as Teaching Languages in Engineering // Lecture Notes in Computer Science / 2004 – Volume 3039, pp. 1210-1217.
  5. Oliphant, Travis E. Python for Scientific Computing // Computing in Science & Engineering / 2007 – Volume 9,  Issue 3, pp. 10-20.
Категория: Мои статьи | Добавил: andrewvol (07.04.2015)
Просмотров: 1987 | Теги: расчеты, программирование, Python, электроснабжение, обучение | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Контакты


Blogger Справочник

Облако тэгов

UT 2004 профили ИБП самозапуск арабские изоляция пожароопасность римские числа Windows Mobile автоматический выключатель карта селективности селективность экономика защита надежность источник бесперебойного питания предохранитель системы связи ДПИ НГТУ курсовая работа распределенные генерации электроника активный потребитель гост электротехника нормы показатели качества электроэнергии проектирование электроснабжение система управления справочные данные книги малые генерации релейная защита замемление нейтраль сети среднего напряжения расчеты Экзамен Python обучение программирование вопросы электромеханика задание методические указания Кабель потеря напряжения расчет автомобиль колесо шины кабельный журнал Кабели пожарная безопасность студентам электриеские аппараты электрические и электронные аппарат английский язык перевод расчет электрических цепей расчет электроэнергетических систем электросанбжение диспетчеризация освещение реконструкция светильники управление освещением

Статистика сайта