Моделирование преобразователей напряжения с ШИМ на языке Erlang

Актуальные проблемы авиации и космонавтики. Информационные технологии

фонов. К некоторым из этих функций относятся: события жизненного цикла приложения; хранилище (локальное хранилище и базы данных HTML5); контакты; камера; геопозиционирование; акселерометр.

© Богданов К. В., 2012

УДК 519.688

К. В. Богданов, А. Н. Ловчиков Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

МОДЕЛИРОВАНИЕ ПРЕОБРАЗОВАТЕЛЕЙ НАПРЯЖЕНИЯ С ШИМ НА ЯЗЫКЕ ERLANG

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

Моделирование и анализ работы электронного оборудования - весьма сложная задача, для решения которой активно используется специализированное программное обеспечение - ББА-системы. Развитие таких систем идёт, по большей части, экстенсивным путём, начиная от систем, созданных в 70ых годах прошлого столетия. Как правило, улучшаются пользовательские интерфейсы, расширяются базы данных электронных компонент и т.п., в то время как основные вычислительные алгоритмы остаются прежними. Чаще всего всё сводится к решению получившейся системы линеаризованных дифференциальных уравнений, являющейся математической моделью моделируемого устройства. Численные методы решения при этом позволяют получать весьма точные результаты, но проблемы возникают при моделировании систем с большим количеством электронных компонентов, что приводит к усложнению математической модели, и при моделировании систем, в которых имеются существенные нелинейности, которые значительно огрубляют результаты моделирования, либо вообще приводят к тому, что вычислительный процесс расходится.

В связи с этим предлагается диаметрально противоположный подход: каждый блок либо компонент устройства должен быть смоделирован отдельно. Полученные модели будут выполняться внутри отдельных вычислительных процессов. При этом, если мы рассматриваем моделирование в диапазоне времени, то каждый из таких вычислительных процессов должен получать на один или несколько своих логических входов некоторые параметры (например, мгновенное значение напряжения относительно принятой «земли»). Также этот процесс должен выдавать результаты обработки входных параметров в качестве выходных данных.

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

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

Функционирование модели на основе независимых процессов

Секция «Информационнее системы и технологии»

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

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

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

Наиболее подходящей для реализации средой представляется Erlang (Эрланг) - функциональный язык программирования, позволяющий разрабатывать программное обеспечение для разного рода распределённых систем. Запущенный экземпляр эмулятора Erlang называется узлом. Узел имеет имя и «знает»

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

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

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

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

© Богданов К. В., Ловчиков А. Н., 2012