Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Моделирование матричных уравнений в задачах управления на базе MatLabSimulink. Учебное пособие
.pdf
Рис. 1.17. Функция randn Рис. 1.18. Функция diag
Рис. 1.19. Функция diag с параметром
Рис. 1.20. Выделение главной
диагонали
Функция fliplr позволяет сформировать матрицу путем перестановки столбцов заданной матрицы относительно вертикальной оси
(рис. 1.21). Функция flipud осуществляет перестановку заданной матрицы относительно горизонтальной оси (рис. 1.22).
Функция reshape дает возможность построить матрицу размером
m × n, задавая из столбцов элементы заданной матрицы и распределяя их по n столбцам, каждый из которых содержит m элементов
11

(рис. 1.23). Функция rot90 переворачивает заданную матрицу на 90°
против часовой стрелки (рис. 1.24)
Рис. 1.21. Функция fliplr Рис. 1.22. Функция flipud
Рис. 1.23. Функция reshape Рис. 1.24. Функция rot90
В среде MatLab есть множество способов для работы с матрицами.
На рис. 1.25 выполнено транспонирование матрицы с помощью опера-
12

тора «'». На рис. 1.26 обратная матрица находится с использованием
встроенной функции inv для квадратных матриц. Псевдообратную
матрицу можно найти с помощью функции pinv.
Рис. 1.25. Транспонирование Рис. 1.26. Обратная матрица
На рис. 1.27 приведена команда, которая позволяет поместить заданное число на определенное место в матрице. В языке MatLab есть функции деления матриц слева направо (символ «/») и деления матриц справа
налево (символ «\»). Операция B/A эквивалентна операции B*inv(A), где
функция inv осуществляет обращение матрицы (рис. 1.28). Операция
B/A используется для решения матричного уравнения X*A = B. Операция A\B эквивалентна операции inv(A)*B,
используется при реше-
нии матричного уравнения A*X = B.
Рис. 1.27. Вставка числа Рис. 1.28. Деление матриц
13

В качестве примера рассмотрим задачу нахождения корней следующей системы линейных алгебраических уравнений:
51,
xxx
123
0.7 12 5 2.9,
xxx
123
34 3.1.
xx
13
На рис. 1.29 показан результат решения системы линейных алгебраических уравнений.
Рис. 1.29. Решение системы линейных
алгебраических уравнений
КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ
1. Перечислите возможности формирования векторов и матриц в
системе MatLab.
Каким образом можно задать матрицу как вектор-столбец в ре-
2.
жиме прямых вычислений?
С какой целью используется двоеточие при формировании век-
3.
торов?
Как можно выделить блоки матриц?
4.
5. С помощью какой команды можно посмотреть переменные ра-
бочей среды?
14

6.
Какой размер должны иметь матрицы при выполнении операций
сложения и вычитании?
Какой оператор используется при перемножении матриц?
7.
8.
Каким образом можно выполнить горизонтальную конкатена-
цию матриц?
9.
Какая команда используется для выполнения вертикальной кон-
катенации матриц?
10.
Какая функция позволяет построить нулевую матрицу?
11.
Какая матрица может быть образована с помощью функции eye?
Какая функция используется для формирования матрицы чисел,
12.
распределенных по нормальному закону с нулевым средним и единичной дисперсией?
13.
Матрица какого вида может быть сформирована с помощью
функции fliplr?
14.
Какую матрицу формирует функция diag?
15.
Какую матрицу позволяет построить функция ones?
16.
В чем заключается результат работы функции reshape?
С помощью какой команды можно выполнить транспонирование
17.
матриц?
18.
Каким образом можно найти обратную матрицу?
19.
Порядок решения задачи нахождения корней системы линейных
алгебраических уравнений.
2. ФОРМИРОВАНИЕ ВЕКТОРОВ И МАТРИЦ
В СРЕДЕ Simulink
2.1. ЭЛЕМЕНТЫ БИБЛИОТЕКИ Simulink
В системе MatLab значительное место отводится специализированным группам программ, называемых Toolboxes. Toolboxes представляет собой коллекцию функций MatLab (M-файлов), которые позволяют
решать частные классы задач. Toolboxes применяются, например, для
обработки сигналов, систем контроля, нейронных сетей, нечеткой логики, вейвлетов, моделирования и т. д.
После запуска пакета MatLab на панели инструментов необходимо
выбрать пакет-расширение Simulink (рис. 2.1).
15

Рис. 2.1. Панель инструментов
Simulink – это интерактивная система для моделирования нелиней-
ных динамических систем. Она представляет собой среду, которая
позволяет моделировать процесс путем перетаскивания блоков и диаграмм на экране.
При построении блок-схем используются элементарные блоки,
позволяющие связать блок-схему со средой MatLab и обеспечить
функционирование в ней построенной модели как программы.
Интерфейс пакета Simulink соответствует
стилю интерфейса типичных приложений Windows, в том числе интерфейсу системы
MatLab. Меню пакета Simulink содержит следующие пункты:
File – работа с файлами моделей и библиотек;
Edit – операции редактирования, работа с буфером обмена и со-
здание подсистем;
View – управление отображением панели инструментов и строки
состояния;
Simulation – управление процессом моделирования;
Format – операции форматирования модели (смена шрифтов, ре-
дактирование надписей, повороты блоков, операции с цветами линий
блоков, их фоном и общим фоном);
Tools – управление видом анализа.
Simulink работает с линейными, нелинейными, непрерывными,
дискретными, многомерными системами. В состав модуля Simulink
входит библиотека элементов (рис. 2.2), необходимых для создания
моделей объектов и систем.
Отметим, что стандартные блоки библиотеки Simulink сгруппированы
в следующие разделы:
Continuous – линейные непрерывные компоненты;
Discontinuties – непрерывные по входу и дискретные по выходу
блоки;
Discrete – дискретные компоненты;
16

Рис. 2.2. Библиотека Simulink
Look-Up Tables – таблицы, семейства характеристик, интерполя-
ция;
Math Operations – математические компоненты;
Model Verification – блоки обработки результатов моделирова-
ния;
Model-Wide Utilites – информационные блоки;
Ports&Subsystems – компоненты для создания подсистем;
Signal Attributes – компоненты обслуживания сигнальных связей;
Signal Routing – блоки обработки и преобразования сигналов;
Sinks – регистрирующие устройства;
17

Sources – источники сигналов и воздействий;
User-Defined Functions – функции, определяемые пользователем.
Для просмотра определенного раздела библиотеки необходимо указать
его, и тогда в правой части окна появится набор элементов активного
раздела библиотеки.
Рис. 2.3. Инструментальная панель пакета Simulink
На инструментальной панели пакета Simulink (рис. 2.3) находятся
кнопки вызова различных операций: новая модель, открыть модель,
сохранить, печать, вырезать, копировать в буфер, вставить из буфера
и т. д.
На рис. 2.4 представлено окно ввода параметров для генератора
гармонических колебаний Sine Wive, находящегося в разделе Source.
Для построения динамической системы понадобятся элементы,
изображенные на рис. 2.5.
Практически все элементы
в Simulink имеют ряд параметров, которыми регулируются их поведение и свойства. Доступ к этим параметрам можно получить с помощью пункта «<название_компонента>
Properties…» контекстного меню, открывающегося при нажатии правой кнопкой мыши на компоненте (рис. 2.6). Для остальных компонентов эти элементы имеют аналогичный вид и назначение.
Рассмотрим блоки, приведенные на
рис. 2.5, более подробно (слева
направо) [2–4].
1. Единичный импульс («ступенька») – элемент Step группы Sources.
При использовании данного элемента рекомендуется в его свойствах
установить значение параметра Step Time равным нулю (рис. 2.7).
2. Мультиплексор – элемент Mux группы Signal Routing. Количество входов мультиплексора задается в свойствах параметром Numbers
of inputs (рис. 2.8).
3. Коэффициент усиления – элемент Gain группы Math Operations.
Значение коэффициента усиления задается параметром Gain. Если
необходимо задать
матрицу в качестве коэффициента усиления, то в
этом случае в квадратных скобках указываются строки матрицы, разделяемые точкой с запятой. Порядок умножения задается в свойствах
полем Multiplication (рис. 2.9).
18

Рис. 2.4. Окно параметров для генератора гармонических колебаний
Рис. 2.5. Компоненты библиотеки Simulink
19

Рис. 2.6. Контекстное меню Рис. 2.7. Окно параметров элемента Step
Рис. 2.8. Окно параметров мультиплексора
4. Осциллограф – элемент Scope группы Sinks. На рис. 2.10 показа-
на панель блока Scope.
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
