Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3364

.pdf
Скачиваний:
4
Добавлен:
15.11.2022
Размер:
4.51 Mб
Скачать

ляет запускать систему через веб-браузер или при помощи приложений.

MATLAB (MATrix LABoratory) – это высокоуровневый язык и интерактивная среда для численных расчётов, визуализации и программирования [21]. Выпускается американской компанией The MathWorks. Посредством MATLAB пользователь может анализировать данные, разрабатывать алгоритмы, создавать модели и приложения. Язык, средства и встроенные математические функции дают пользователю возможность быстрее решать задачи по сравнению с традиционными языками программирования, такими, как C/C++ или Java. MATLAB позволяет решать широкий спектр задач в различных областях науки и техники.

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

Кроме этого, в MATLAB имеются средства работы с данными (получение, анализ, визуализация), позволяющие тратить на операции с данными намного меньше времени, чем при аналогичных операциях при использовании традиционных языков программирования. MATLAB позволяет получать данные из файлов, приложений, баз данных, а также внешних приборов. Файлы, доступные для чтения, могут быть разных форматов: Excel-файлы, текстовые или бинарные файлы, изображения, звуковые или видеофайлы. Средства для анализа данных представляют собой функции для фильтрации, сглаживания, интерполяции, свёртки и быстрого преобразования Фурье. Визуализация данных осуществляется путём встроенных 2D и 3D графиков функций, а также функций для объёмной визуализации. Также, есть возможность создания отчётов после выполнения

61

программы. Отчёт включает в себя программный код, комментарии и результаты работы программы, включая графики. Отчёты могут быть преобразованы в различные форматы, такие как HTML, PDF, Word или LaTeX.

Приложения, написанные на языке MATLAB, можно соединять с приложениями, написанными на других языках. Так, пользуясь MATLAB, можно вызвать код, написанный на C, C++, Java или .NET, или, наоборот, при создании C, C++ или Fortran-приложений можно вызвать код, написанный на

MATLAB.

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

Параллельные вычисления (Parallel Computing Toolbox, MATLAB Distributed Computing Server);

Математика, статистика и оптимизация (Symbolic Math Toolbox, Partial Differential Equation Toolbox, Statistics and Machine Learning Toolbox, Curve Fitting Toolbox, Optimization Toolbox, Global Optimization Toolbox, Neural Network Toolbox, Model-Based Calibration Toolbox);

Системы управления (Control System Toolbox, System Identification Toolbox, Fuzzy Logic Toolbox, Robust Control Toolbox, Model Predictive Control Toolbox, Aerospace Toolbox, Robotics System Toolbox);

Обработка сигналов и связь (Signal Processing Toolbox, DSP System Toolbox, Communication System Toolbox, Wavelet Toolbox, RF Toolbox, Antenna Toolbox, Phased Array System Toolbox, LTE System Toolbox);

Обработка изображений и машинное зрение (Data Acquisition Toolbox, Instrument Control Toolbox, Image Acquisition Toolbox, OPC Toolbox, Vehicle Network Toolbox);

Финансовая инженерия (Financial Toolbox, Econometrics Toolbox, Datafeed Toolbox, Database Toolbox, Spreadsheet

62

Link EX (для Microsoft Excel), Financial Instrument Toolbox,

Trading Toolbox);

Вычислительная биология (Bioinformatics Toolbox, SimBiology);

Средства для генерации и проверки кода (MATLAB Coder, HDL Coder, Vision HDL Toolbox, HDL Verifier, Filter Design HDL Coder, Fixed-Point Designer);

Средства для разработки приложений (MATLAB Compiler, MATLAB Compiler SDK, Spreadsheet Link EX (для Microsoft Excel), MATLAB Production Server);

Подключение к базам данных и составление отчётов

(Database Toolbox, MATLAB Report Generator).

Отдельно стоит отметить PDE Toolbox – набор инструментов, позволяющий решать дифференциальные уравнения методом конечных элементов в 2D и 3D случаях.

Ключевые особенности

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

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

Задание граничных условий: Дирихле, обобщённое условие Неймана, смешанное условие;

Функции для создания 2D-геометрии и импорта 3Dгеометрии из STL-файлов;

Автоматическое разбиение с использованием треугольников и тетраэдров;

Одновременное изображение нескольких графиков решения, наложение сетки, анимация.

Рабочее окно и процесс работы в PDE Toolbox

Рабочий процесс в PDE Toolbox состоит из определения геометрии, задания уравнения или системы уравнений, описы-

63

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

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

Возможные типы уравнений.

При помощи PDE Toolbox можно задавать и решать различные типы уравнений или систем уравнений в частных производных: эллиптические, параболические, гиперболические, а также задачи на собственные значения. Системы дифференциальных уравнений в частных производных могут быть линейными или нелинейными и могут иметь вещественнозначные или комплекснозначные решения.

PDE Toolbox решает уравнения следующего вида:

 

 

 

 

 

 

+

 

 

 

− ∙( )+

=

или системы вида:

 

 

 

 

где

,

 

 

 

 

 

+

 

 

− ∙(

) +

= ,

 

 

 

 

 

 

 

 

 

матрицы вида

 

 

– число уравнений сис-

 

 

,

-

 

 

×1

– тензор четвёртого ранга вида

темы,, ,

– векторы

,

×

,

 

 

×

×

×

 

 

 

 

 

 

размерность пространства, в котором реша-

 

 

 

 

 

 

 

 

 

ется задача,

 

 

– знак тензорного произведения. Все коэффи-

циенты могут зависеть от пространственных координат, реше-

ния

и его пространственных производных.

 

64

Уравнение задачи на собственные значения имеет вид:

а

− ∙( ) +

=

или − ∙( ) +

=

,

 

система уравнений:

или − ∙( ) +

=

.

− ∙( ) +

=

Коэффициенты в уравнениях могут зависеть только от пространственных координат и не зависят от решения и его пространственных производных.

В случае нестационарной задачи все коэффициенты могут зависеть ещё и от времени.

Задание геометрии

В случае 3D-геометрии PDE Toolbox может работать с многогранными объектами. Геометрия задаётся путём импорта из STL-файла в MATLAB. Формат STL является стандартным форматом для импорта 3D-геометрий из CAD-систем. Ещё один способ задания 3D-геометрии – использование функции geometryFromMesh, которая позволяет создать 3D-геометрию из конечно-элементной сетки или из поверхности, разбитой на треугольники. 3D-геометрия также может быть создана путём комбинации (соединения или вложения) одинаковых примитивов (параллелепипеды, цилиндры, сферы). Комбинация разных примитивов (например, цилиндра и сферы) не допускается.

Для 2D-задач задание геометрии осуществляется при помощи комбинации нескольких геометрических примитивов

(Constructive Solid Geometry) или при помощи геометрических функций. При первом подходе с помощью комбинации примитивов (квадратов, прямоугольников, кругов, эллипсов, многоугольников) может быть создана сложная геометрия. Такой подход используется при работе через рабочее окно. Второй подход заключается в описании кривых, совокупность которых является границей исследуемой 2D-области.

Граничные условия

PDE Toolbox позволяет задавать граничные условия Дирихле и обобщённые граничные условия Неймана на границе

65

исследуемой области путём задания соответствующих коэффициентов.

Дирихле:

Обобщённое условие

Неймана:

 

 

 

= .

 

 

Для каждого

граничного условия

– внешняя единичная

 

+

= .

 

нормаль, – скаляр или вектор-решение,

– коэффициент, за-

данный при определении уравнений, а коэффициенты

Для

могут зависеть от решения, а также координат нормали,

. , ,

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

Начальные условия

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

Разбиение и решение

Для решения уравнений PDE Toolbox использует метод конечных элементов. Область разбивается в автоматическом режиме путём управления параметром сетки.

В3D-задачах область разбивается на тетраэдры. Существует возможность выбора порядка базисных функций (линейные или квадратичные).

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

Для 2D-эллиптических и нелинейных эллиптических задач используется алгоритм адаптивного измельчения сетки для измельчения сетки в тех местах, где ошибка решения оказывается слишком большой.

66

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

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

Визуализация решения и постпроцессорная обработка

PDE Toolbox позволяет визуализировать решение путём создания поверхностных рисунков, таких как контурные рисунки или пользовательские рисунки, такие как распределение исследуемой величины в секущих плоскостях.

Поверхностные рисунки

PDE Toolbox позволяет показывать распределение исследуемой величины по поверхности области в 3D.

Графики для нестационарных задач

Имеются средства для визуализации изменения исследуемых величин во времени.

Пользовательские графики

При помощи средств кода можно создавать свои собственные рисунки.

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

Кроме того, при помощи средств PDE Toolbox можно получить значение решения, его градиента или тезорного произведения в любой точке области.

Отдельно стоит отметить Simulink – продукт, представляющий собой интерактивную графическую среду для имитационного моделирования и проектирования на основе моде-

67

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

Графический редактор для построения и управления иерархическими блок-диаграммами;

Библиотеки готовых блоков для моделирования непрерывных и дискретных по времени систем;

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

Средства визуализации данных для наглядного представления результатов;

Средства для управления проектами и данными;

Средства анализа модели для усовершенствования архитектуры моделей и увеличения скорости имитации;

Функциональный блок MATLAB для импорта алго-

ритмов MATLAB;

Средства для импорта C/C++ кода.

В последней на сегодняшний день версии MATLAB (версия R2017a, выпущена 8 марта 2017 г.) представлены следующие изменения:

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

68

Scilab, так и редактором, позволяющим создавать и редактировать скрипт-файлы.

Среди функциональных возможностей Scilab выделяются следующие:

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

Функции для 2D и 3D визуализации результатов: линейные графики, круговые диаграммы, гистограммы, поверхности, анимация, а также функции для экспорта графических данных в различных форматах.

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

Статистика – описательная статистика, распределения вероятности, линейное и нелинейное моделирование.

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

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

Разработка приложений: расширенные структуры данных и пользовательские типы данных, пользовательский интерфейс, программный интерфейс приложения, совместимый с C, C++, Java. Также существует возможность управления обменом данных с внешними источниками: чтение и запись бинар-

69

ных MATLAB-файлов, преобразование MATLAB M-файлов в

Scilab-файлы, связь с Excel.

Xcos – графический редактор для моделирования гибридных динамических систем. Состоит из трёх основных частей. Первая часть – браузер палитры блоков, в котором представлены блоки, которые формируют конечную модель. Блоки сгруппированы по категориям: блоки обработки сигналов, блоки математических операций, блоки непрерывных и дискретных систем, пользовательские блоки и т.д. Вторая часть – редактор, в котором блоки соединяются в единую динамическую систему, которая подлежит решению. Третья часть – компилятор/моделирующее устройство, позволяющее моделировать сложные системы: дискретные, непрерывные, определяемые символьными уравнениями и т.д., а также гибридные системы. Также, можно в реальном времени следить за данными, полученными в результате моделирования, при помощи их графического представления.

Последней на сегодняшний день (июль 2017 г.) версией

Scilab является версия Scilab 6.0.0 (выпущена 17.02.2017).

Maxima – система компьютерной алгебры, являющаяся преемницей системы Macsyma, которая разрабатывалась с 1968-го по 1982-й годы в Массачусетском технологическом институте [22]. Впоследствии Macsyma оказала влияние на многие другие системы, такие, как Mathematica и Maple. Позволяет выполнять широкий класс операций над числовыми и символьными выражениями: дифференцирование, вычисление пределов, аналитическое нахождение интегралов, операции со степенными рядами и рядами Фурье, преобразования Лапласа, решение систем линейных уравнений, решение обыкновенных дифференциальных уравнений, работа с многочленами, множествами, списками, векторами, и матрицами и тензорами, работа с элементарными (в том числе логарифмическими, экспоненциальными, тригонометрическими) и специальными функциями, решение интегральных уравнений, а также позволяет решать задачи из области теории чисел и теории групп. Maxima

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]