LazPhCoord — программа анализа режимов работы сложных трехфазных цепей

Версия 1.0
Версия 2.0

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

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

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

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

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

Версия 1.0

В качестве метода расчета применялся классический метод узловых потенциалов (МУП), что исключало наличие в цепи короткозамкнутых ветвей. Поэтому в модели амперметра закладывалось внутреннее сопротивления, а для ветвей с источником ЭДС не допускалось наличие нулевого сопротивления. Для многополюсных элементов (трансформаторов, лэп, участков тяговой сети) использовалось приведение к эквивалентным многополюсникам с уравнениями в Y–параметрах, что упрощало формирование расчетной системы уравнений методом поэлементного вклада. Для элементов с распределенными параметрами применялось определение эквивалентных параметров на основе цепного соединения элементарных многополюсников, также разработаны алгоритмы снижения порядка уравнений при наличии поперечных соединений между зажимами многополюсника.

Для реализации матричных операций использовались модули работы с действительными и комплексным матрицами, написанными автором ранее. Для решения системы уравнений применялся метод LU–факторизации на основе алгоритмов, изложенных в классической книге Уилкинсон, Райнш «Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра.». Затем для LU–факторизации матриц были переписаны соответствующие процедуры из TPMATH, author: Dr Jean DEBORD.

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

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

Написание программы было выполнено в IDE Lazarus v.0.9.28.2 и v.0.9.30.4. Практическое применение программа нашла при написании диплома по электроснабжению железных дорог, в котором был был выполнен анализ режимов работы системы тягового электроснабжения на полигоне протяженностью свыше 700 км, включавший 21 тяговую подстанцию, 4 подстанции внешнего электроснабжения, около 40 лэп, 22 фидерных зоны, расчетная модель имела 166 элементов и 356 узлов. Во время расчетов не было выявлено случаев численной неустойчивости.

Версия 2.0

Во время практического применения первой версии LazPhCoord было выявлена необходимость ряда доработок, что было выполнено в версии 2.0 программы.

1. Был выполнен переход на модифицированный МУП (ММУП), что позволило иметь в схеме модели с короткозамкнутым ветвями — амперметры и источники ЭДС с нулевым внутренним сопротивлением. Также это упростило формирование расчетной системы уравнений для ветвей со взаимной индуктивностью, и трехфазных источников/нагрузок с различными сопротивлениями для прямой, обратной и нулевой последовательностей.

2. При расчете реальных трехфазных сетей заполненность общей матрицы ММУП  получается весьма низкой, поэтому имеет смысл переход к работе с разреженными матрицами (sparse matrix). Одним из самых мощных пакетов по работе с разреженными матрицами является Sparse1.4, Copyright (c) 2003, Kenneth S. Kundert. Автором был выполнен перевод пакета на ObjectPascal компилятора FPC. Для применения разреженных матриц пришлось полностью переработать логику формирования матриц ММУП.

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

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

В качестве инструмента разработке использован Lazarus 1.8.0 / FPC 3.0.4.

  1. К началу
  2. Главное окно программы
  3. Главное меню программы
  4. Палитра элементов