На сегодняшний день имеется много программных продуктов для математического моделирования (ММ) технических систем (ТС). Многие из них знакомы пользователям и являются популярными, другие – появились недавно. Есть программы, которые могут быть использованы для моделирования любых ТС, есть же программы, имеющие узкую специализацию в какой-либо предметной области. Возможности многих программ в значительной степени перекрываются друг другом и подходы к решению одинаковых задач у них примерно одинаковы. Подумаем о классификации пакетов программ (ПП), которые могут использоваться для ММ ТС с точки зрения сегодняшнего состояния [1]. Для этого будем опираться на следующие важнейшие показатели:
– назначение и возможности ПП;
– состав их библиотек и приложений;
– принципы построение моделей;
– методы интегрирования;
– средства визуализации результатов.
Примерная структура ПП для моделирования ТС представлена на рис. 1.
Рис. 1. Классификация пакетов программ моделирования технических систем
Так называемые «классические» математические ПП, такие как Mathematica, Maple, Mathcad, хорошо приспособлены к выполнению расчетов в дисциплинах естественнонаучного цикла, когда модель задается в аналитической форме. В этих случаях программирование заключается в написании сравнительно небольших по объему программ, состоящих в основном только из макрооператоров [2]. Пакеты компонентного моделирования (КМ) практически полностью ориентированы на численные эксперименты. В настоящее время они преобладают в процессах проектирования технических объектов (ТО). По принципам представления начальной модели среди пакетов КМ можно выделить следующие две основные группы:
– пакеты структурного моделирования (СМ);
– пакеты физического моделирования (ФМ).
Некоторые авторы в своих публикациях выделяют в качестве третьей группы ПП, предназначенные для моделирования гибридных систем (МГС) [3]. Эти пакеты позволяют наглядно описывать ТС со сложной логикой переключений.
Объект исследования
К числу универсальных ПП, не ориентированных на конкретные прикладные области моделирования ТС, можно отнести пакет программ MatLab. Данный ПП предназначен для аналитического и численного решения различных математических задач и исследования динамических систем (ДС), включая и дискретные, и непрерывные, и гибридные модели. Главная его особенность – хорошая проработанность и отлаженность всех средств и методов программирования. MatLab получил наиболее распространенное применение в инженерной практике в отличие от других подобных программ. В состав системы входит ядро компьютерной алгебры Maple и пакет расширения Simulink, а также десятки других пакетов расширений. Система ММ Simulink является в настоящее время одним из наиболее популярных инструментов численных расчетов и применяется в различных областях знаний [4–5].
Обзор MATLAB/Simulink. Важнейшей составляющей ПП является приложение СМ ДС Simulink. Simulink – это библиотека блоков для многодоменного моделирования и модельного проектирования. Он поддерживает системный дизайн, моделирование, автоматическую генерацию кода и непрерывный контроль, включая проверку встроенных систем. Simulink предоставляет графический редактор, настраиваемые библиотеки блоков и решатели для моделирования и симулирования ДС. Он интегрирован с MatLab, позволяя включать его алгоритмы в модели и экспортировать результаты моделирования для дальнейшего анализа.
К ключевым особенностям Simulink можно отнести следующие:
– графический редактор для построения и управления иерархическими блок-диаграммами;
– библиотеки предопределенных блоков для моделирования систем непрерывного и дискретного времени;
– симуляционный «движок» с фиксированным и переменным шагами;
– области и отображения данных для просмотра результатов моделирования;
– инструменты визуализации проектов и данных для управления файлами моделей;
– инструменты анализа модели для уточнения ее архитектуры и увеличения скорости моделирования;
– функциональный блок для импорта алгоритмов MatLab в модели;
– приложение Legacy Code Tool для импорта кода C и C ++ в модели.
Ещё одним преимуществом системы Simulink является использование его не только для моделирования системы, а еще и для моделирования динамического поведения этой системы. Основные методы, которые используются для создания простой модели – это те же методы, которые будут использованы в дальнейшем для более сложных моделей. Чтобы создать эту простую модель в Simulink, нам потребуется всего четыре блока: Sine Wave – генерирует входной синусоидальный сигнал для модели; Integrator – обрабатывает входной сигнал; Bus Creator – объединяет входной сигнал и сигнал обратной связи в один; Scope – визуализирует сигналы.
Результаты моделирования могут быть представлены в виде графиков или таблиц. Пример построения модели в приложении Simulink приведен на рис. 2, а.
а) б)
Рис. 2. Пример построения модели в Simulink: а) модель; б) результаты моделирования
Прежде чем имитировать поведение модели, необходимо определить параметры моделирования. Параметры моделирования включают тип численного «решателя», время начала и остановки и максимальный размер шага. В меню «Editor» выбирается «Simulation» > «Model Configuration Parameters». Диалоговое окно «Configuration Parameters» открывает панель «Solver». В поле Stop time введем 20. В поле Max size введем 0.2. Результаты моделирования приведены на рис. 2, б. Подробно о моделировании систем управления в Simulink изложено в [6–7].
Приложения ПП MatLab позволяют моделировать ТС, включающие механические, электрические и информационные элементы. Среди таких приложений имеет смысл выделить SimMechanics, SimPowerSystems, StateFlow.
Обзор SimMechanics. Приложение SimMechanics предназначено для технического проектирования и моделирования пространственных механизмов, способно моделировать поступательное и вращательное движение тел в трехмерном пространстве. SimMechanics обеспечивает многомодельную среду моделирования для трехмерных механических систем, таких как роботы, подвески транспортных средств, строительное оборудование и посадочные места для самолетов. Моделируя многоярусную систему и используя блоки, представляющие тела, суставы, ограничения и элементы силы, SimMechanics формулирует и решает уравнения движения для всей механической системы. Модели из CAD-систем, включая массу, инерцию, сустав, ограничение и 3D-геометрию, могут быть импортированы в SimMechanics. Автоматически созданная 3D-анимация позволяет визуализировать динамику системы.
SimMechanics позволяет параметризовать свои модели с использованием переменных и выражений MatLab и систем управления проектами многоуровневой системы Simulink. Можно добавлять электрические, гидравлические, пневматические и другие компоненты к механической модели с помощью Simscape и тестировать их все в одной симуляционной среде. Для развертывания моделей в других симуляционных средах, включая аппаратно-контурные (HIL) системы, SimMechanics поддерживает создание C-кода с помощью Simulink Coder.
К ключевым особенностям SimMechanics можно отнести следующие:
– блоки и моделирующие конструкции для моделирования и анализа 3D-механических систем в Simulink;
– определение жесткого тела с использованием стандартной геометрии и пользовательских экструзий, определенных в MatLab;
– автоматический расчет тензора массы и инерции;
– режимы моделирования для анализа движущихся и расчетных сил;
– визуализация и анимация многосистемной динамики системы с 3D-геометрией;
– утилита SimMechanics Link, обеспечивающая интерфейс для Pro/ENGINEER, SolidWorks и Autodesk Inventor для взаимодействия с другими платформами САПР;
– поддержка генерации C-кода с помощью Simulink Coder.
На рис. 3, а приведен пример модели маятника, включающий такие физические компоненты, как блок тела (body), блок одномерного вращательного движения (revolute), блок основания (ground).
а)
б) в)
Рис. 3. Построение модели маятника в приложении SimMechanics: а) модель; б)–в) результаты моделирования
В результате моделирования на рис. 2, б мы видим, что движение является периодическим, но не простым гармоническим (синусоидальным), поскольку амплитуда колебания очень велика (180 градусов от одной точки поворота к другой). Обратим внимание на то, что нулем угла является начальный горизонтальный угол, а не вертикальный. Нули движения всегда являются начальными условиями. График на рис. 2, в показывает угол в зависимости от угловой скорости без явной временной оси. Эти две переменные вычерчивают фигуру, похожую на эллипс, из-за сохранения полной энергии E:
где инерционный момент стержня относительно его точки поворота (а не центра тяжести). Два члена в левой части этого уравнения представляют собой соответственно кинетическую и потенциальную энергии. Пространство скоростей координат является фазовым пространством системы.
Важнейшим достоинством пакета SimMechanics является возможность объединения блоков SimMechanics и блоков Simulink в единой схеме. В частности, блоки привода SimMechanics (Actuator blocks) могут подключаться к стандартным выходным портам Simulink, как это показано на рис. 3, а.
Обзор SimPowerSystems. Пакет SimPowerSystems, как и SimMechanics, является, расширением среды MatLab. Он работает под управлением Simulink, используя тот же способ визуального компонентного программирования с использованием «энергетических» компонентов. Он представляет собой библиотеки компонентов и инструменты анализа для моделирования и симулирования систем и объектов электроэнергетики. В библиотеках представлены модели компонентов электрической энергии, включая трехфазные машины, электроприводы и компоненты для таких применений, как гибкие системы передачи переменного тока (FACTS), системы возобновляемых источников энергии, автоматический анализ гармоник, расчет полного гармонического искажения (THD), потока нагрузки и других ключевых анализов электроэнергетической системы.
Модели SimPowerSystems могут использоваться для разработки систем управления и тестирования производительности системного уровня. Имеется возможность параметризовать модели с использованием переменных и выражений MatLab и систем управления проектами для системы электроснабжения в Simulink. Можно добавлять механические, гидравлические, пневматические и другие компоненты к модели с помощью Simscape и тестировать их вместе в одной симуляционной среде.
Для развертывания моделей в других симуляционных средах, в том числе в аппаратно-петлевых (HIL) системах, SimPowerSystems поддерживает создание C-кода. SimPowerSystems была разработана в сотрудничестве с Hydro-Quebec из Монреаля.
К ключевым особенностям SimPowerSystems можно отнести следующие:
– библиотеки моделей конкретных приложений, включая модели обычных электроприводов переменного и постоянного тока, гибких систем передачи переменного тока (FACTS) и систем с возобновляемыми источниками энергии;
– режимы дискретизации и фазового моделирования для более быстрого выполнения симуляции;
– идеальный алгоритм переключения для ускоренного моделирования силовых электронных устройств;
– методы анализа для получения состояний представления схем и вычислительного потока нагрузки для электрических машин;
– основные модели разработки ключевых электрических технологий;
– возможность расширения библиотек компонентов с использованием Simscape;
– поддержка генерации C-кода.
В качестве примера создания моделей в SimPowerSystems на рис. 4, а представлена модель работы синхронного генератора. Для представления эквивалентного источника используется блок Simplified Synchronous Machine с параметрами 1000 МВА, 315 кВ, 60 Гц, подключенного к бесконечной шине (блок трехфазного программируемого источника напряжения). Блок синхронной машины (SI Units) используется как синхронный генератор. Внутреннее сопротивление и реактивное сопротивление установлены на значениях 0,02 (R = 1,9845 Ом) и 0,2 (X = 19,845 Ом, L = 0,0526 H). Инерция машины J = 168,870 кг*м2, что соответствует постоянной инерции H = 3 с. Электрическая частота равна ωs = 2π*60 = 377 рад/с. Машина имеет две пары полюсов, так что ее синхронная скорость составляет 2π*60/2 = 188,5 рад/с или 1800 об/мин.
а)
б)
Рис. 4. Пример моделирования работы синхронного генератора в SimPowerSystems: а) модель; б) результаты моделирования
Опция Load Flow в блоке Powergui используется для инициализации машины и запуска моделирования в стационарном режиме с мощностью 500 МВт. Требуемое внутреннее напряжение, рассчитанное по потоку нагрузки, составляет 1,0149, поэтому внутреннее межфазное напряжение составит E = 315*1,0149 = 319,690 кВ, как указано в блоке Constant, подключенном к входу E. Максимальная мощность, которую может подавать машина с напряжением Vt = 1,0 pu и внутренним напряжением E = 1,0149 pu, равна Pmax = Vt*E/X = 1,0149/0,2 = 5,0745 pu. Синхронная машина изначально работает в стационарном режиме с механической мощностью 505 МВт (механическая мощность, требуемая для выходной мощности 500 МВт, учитывая резистивные потери). При t = 0,5 с механическая мощность внезапно увеличивается до 1000 МВт.
Открыв блок осциллографа Scope, наблюдаем результаты моделирования в виде электромеханических переходных процессов, отображающих угол мощности δ в градусах, скорость машины в об/мин и электрическую мощность в МВт. Результаты моделирования показаны на рис. 4, б. Для начальной электрической мощности Pe = 500 МВт (0,5 pu) угол нагрузки δ составляет 5,65 градуса, что соответствует ожидаемому значению:
Поскольку механическая мощность ступенчато изменяется от 0,5 до 1,0 pu, угол нагрузки увеличивается и проходит через ряд под затухающими колебаниями (коэффициент демпфирования ζ = 0,3) до стабилизации до нового значения 11,3 градуса. В этом случае частота колебаний определяется как
Гц.
Подробно о создании моделей и анализе результатов в SimPowerSystems изложено в работах авторов [8–12].
Обзор StateFlow. В настоящее время появились пакеты, позволяющие моделировать глобальное поведение динамики гибридных систем [13–15]. Одним из эффективных и наиболее доступных инструментов численного моделирования систем, управляемых событиями, является пакет Stateflow, входящий в состав ПП MatLab.
Stateflow – среда для моделирования и симулирования комбинаторной и последовательной логики принятия решений на основе конечных автоматов и блок-схем. Stateflow позволяет комбинировать графические и табличные представления, включая диаграммы перехода состояний, блок-схемы, таблицы перехода состояния и таблицы истинности, для моделирования реагирования системы на события, временные условия и внешние входные сигналы. С его помощью можно спроектировать логику для диспетчерского управления, планирования задач и приложений для управления отказами. Stateflow включает в себя анимацию состояний компьютеров и статические и временные проверки для проверки согласованности и полноты дизайна перед реализацией.
К ключевым особенностям Stateflow можно отнести следующие:
– модельная среда, графические компоненты и механизм моделирования для моделирования и моделирования сложной логики;
– детерминированная семантика выполнения с иерархией, параллелизмом, временными операторами и событиями;
– графики состояний, таблицы перехода состояний и матрицы перехода состояний, представляющие конечные автоматы;
– блок-схемы, функции MatLab и таблицы истинности для представления алгоритмов;
– горизонтальная анимация диаграммы, ведение журнала состояния, ведение журнала данных и встроенная отладка для анализа дизайна и обнаружения ошибок времени выполнения;
– статические и временные проверки конфликтов перехода, циклические проблемы, несоответствия состояния, нарушения диапазона данных и условия переполнения;
– конечные автоматы Mealy и Moore.
В качестве примера создания модели в Stateflow на рис. 5, а показано моделирование системы очередей для задач обработки сервера. В процессе задействованы четыре диаграммы Stateflow:
а)
б)
Рис. 5. Пример построения системы очередей задач сервера в StateFlow: а) блок-схема модели; б) SF-диаграмма
1. Source (источник) – создает задачи с весом от 1 до 5, которые занимают время, пропорциональное их весу.
2. Transmitter (передатчик) – принимает сигнал от источника и отправляет его в очередь, показывает вес задачи слева от дисплея синим цветом, ожидает уведомления ACCEPT или REJECT из очереди, отправляет задачу в очередь на ACCEPT, отмечает задачу как сброшенную (красную) на REJECT.
3. Queue (очередь) – получает задания от передатчика, если в очереди есть место, приостанавливает задачу для Сервера, если нет места, очередь переполняется и отклоняет задачу, задачи в очереди отображаются в черных ящиках на дисплее.
4. Server (сервер) – опрашивает очередь для задач, если очередь находится в ожидание, сервер выполняет задачу и обрабатывает ее, задача, которая обрабатывается, отображается черным цветом справа от дисплея, сервер остается занятым в течение времени, которое занимает задача, а затем возвращается к опросу очереди.
Все эти операции показаны на рис. 5, б.
Заключение
Анализируя современные ТС с точки зрения особенностей их моделирования, можно отметить следующее:
1. Большинство ТС предназначены для реализации заданного движения, и основу любой ТС составляет некоторый исполнительный механизм.
2. Необходимой частью ТС является привод – электромеханический, гидравлический или какой-то другой.
3. Важным компонентом современной ТС является управляющее устройство (УУ), задача которого – обеспечение сложных координированных движений механической части.
Исходя из вышеизложенного и проведенного анализа пакетов ММ, можно сделать вывод, что среда MatLab, в частности приложения моделирования механических систем SimMechanics, электрических систем SimPowerSystems, а также пакет событийного моделирования StateFlow, позволяют получить мощный инструмент исследования сложных ТС. Также широкое распространение MatLab получил в научных исследованиях и образовании.