Матлаб. К. Ю. Петрова введение в matlab учебное пособие
Скачать 2.57 Mb.
|
1 Л.А. Мироновский, К. Ю. Петрова ВВЕДЕНИЕ В MATLAB Учебное пособие 2 ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ» Л.А. Мироновский, К. Ю. Петрова ВВЕДЕНИЕ В MATLAB Учебное пособие Санкт-Петербург 2005 г. 3 УДК518 ББК32 Мироновский Л.А., Петрова К.Ю. Введение в MATLAB. Учебное пособие. СПбГУАП. СПб., 2005 Изложены структура, организация и язык программирования интегрированного математического пакета MATLAB. Описаны основные функции ядра пакета и некоторых тулбоксов (CONTROL, SYMBOLIC, SIGNAL, OPTIMIZATION). Рассмотрена методика решения задач линейной алгебры, оптимизации, линейных и нелинейных дифференциальных уравнений. Описано применение системы SIMULINK для структурного моделирования систем автоматического управления. Изложение сопровождается большим количеством примеров. Учебное пособие предназначено студентам, обучающимся по направлениям 220100, 552800, а также родственным специальностям и направлениям. Рецензенты: Кафедра прикладной информатики Международного банковского института, Доктор технических наук, профессор Слаев В.А. Утверждено редакционно-издательским советом университета в качестве учебного пособия © ГОУ ВПО «Санкт-Петербургский государственный университет аэрокосмического приборостроения» 2005 © Мироновский Л.А., Петрова К.Ю. 2005 4 ОГЛАВЛЕНИЕ ПРЕДИСЛОВИЕ ..................................................................................................................................... 5 1. ЭЛЕМЕНТАРНЫЕ СВЕДЕНИЯ О ПАКЕТЕ................................................................................... 5 1.1. Введение ........................................................................................................................................ 5 1.2. Начало работы ............................................................................................................................... 7 1.2.1. Запуск и элементарные операции ......................................................................................... 7 1.2.2. Ввод числовых данных .......................................................................................................... 8 1.3. Построение графиков ................................................................................................................... 9 1.4. Матричные операции ................................................................................................................. 11 1.5. Работа с полиномами .................................................................................................................. 13 1.6. Собственные числа и векторы ................................................................................................... 16 1.7. Символьные вычисления в MATLAB ...................................................................................... 19 Задачи и упражнения 2. Моделирование линейных систем в MATLAB ............................................................................. 23 2.1. Способы описания линейных систем ....................................................................................... 23 2.2. Моделирование линейных систем ............................................................................................ 25 2.3. Частотные характеристики ........................................................................................................ 28 2.4. Анализ линейных систем ........................................................................................................... 30 Задачи и упражнения 3. МОДЕЛИРОВАНИЕ в SIMULINK ................................................................................................. 34 3.1. Запуск и начало работы в SIMULINK ...................................................................................... 34 3.2. Генераторы входных сигналов и регистрация результатов .................................................... 35 3.3. Основные линейные и нелинейные блоки ............................................................................... 36 3.4. Пример моделирования в SIMULINK ..................................................................................... 38 Задачи и упражнения 4 РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ ЗАДАЧ ................................................................................... 41 4.1 Графические средства MATLAB ............................................................................................ 41 4.1.1 Управление графическим экраном .................................................................................. 41 4.1.2 Двумерная графика ........................................................................................................... 42 4.1.3 Трехмерная графика ......................................................................................................... 46 4.2 Решение алгебраических уравнений и поиск экстремумов функций .................................. 47 4.2.1 Решение нелинейных уравнений ..................................................................................... 47 4.2.2 Поиск экстремумов ........................................................................................................... 49 4.3 Функции от матриц ................................................................................................................... 53 4.3.1 Нормы и числа обусловленности .................................................................................... 53 4.3.2 Матричная экспонента ..................................................................................................... 55 4.4 Канонические формы матриц .................................................................................................. 58 4.4.1 Преобразование подобия .................................................................................................. 58 4.4.2 Фробениусова каноническая форма ................................................................................ 59 4.4.3 Жорданова каноническая форма ..................................................................................... 60 Задачи и упражнения 5 МОДЕЛИРОВАНИЕ ДИНАМИЧЕСКИХ СИСТЕМ ................................................................. 65 5.1 Канонические формы линейных систем ................................................................................. 65 5.1.1 Изменение базиса в пространстве состояний ................................................................. 65 5.1.2 Модальная и сопровождающая канонические формы .................................................. 65 5.1.3 Сбалансированное представление ................................................................................... 67 5.2 Линейные MIMO-модели ......................................................................................................... 68 5.2.1 Описание MIMO-моделей ................................................................................................ 68 5 5.2.2 Анализ минимальности .................................................................................................... 70 5.3 Дискретные модели .................................................................................................................. 73 5.3.1 Описание дискретных моделей ....................................................................................... 73 5.3.2 Моделирование дискретных систем ............................................................................... 75 5.3.3 Расчет аналоговых и цифровых фильтров ...................................................................... 77 5.4 Решение дифференциальных уравнений ................................................................................ 78 5.4.1 Решение задачи Коши....................................................................................................... 78 5.4.2 Решение краевых задач .................................................................................................... 81 5.5 Моделирование в SIMULINK .................................................................................................. 83 5.5.1 Редактор дифференциальных уравнений DEE ............................................................... 83 5.5.2 Анализ Simulink-моделей ................................................................................................. 84 5.5.3 Маскирование подсистем в SIMULINK ......................................................................... 86 5.5.4 Управление Simulink-моделью из MATLAB ................................................................. 88 Задачи и упражнения 6 ПРОГРАММИРОВАНИЕ В MATLAB ........................................................................................ 93 6.1 Типы данных ............................................................................................................................. 93 6.2 Использование структур и пользовательских классов .......................................................... 95 6.3 Сервисные функции .................................................................................................................. 96 6.4 Взаимодействие с системой ..................................................................................................... 99 6.5 Управляющие структуры языка MATLAB ............................................................................. 99 6.6 Описание m-функций ............................................................................................................. 100 6.7 Обработка входных и выходных аргументов функций MATLAB ..................................... 101 6.8 Глобальные переменные. Доступ к переменным из различных рабочих пространств ... 102 Задачи и упражнения ЗАКЛЮЧЕНИЕ ................................................................................................................................... 115 Библиографический список ............................................................................................................ 115 Алфавитный указатель команд ...................................................................................................... 119 6 ПРЕДИСЛОВИЕ Учебное пособие написано на основе работы [6], вышедшей более 10 лет назад. За это время в структуре и командах пакета MATLAB произошли заметные изменения, а сам он прочно занял лидирующее положение среди математических пакетов, ориентированных на решение научно- технических и инженерных задач. В его составе появилась система визуального моделирования SIMULINK – эффективное и удобное средство для моделирования систем, заданных структурными схемами. К настоящему времени выпущено много руководств и справочников по MATLAB ([1-6, 10- 12, 14]), содержащих подробное описание его обширной системы команд (их общее число давно перевалило за тысячу), расширений и приложений. Однако, большинство из этих руководств неудобны для начинающего пользователя из-за обилия представленного материала и перегруженности деталями. Настоящее пособие предназначено для первоначального знакомства с MATLAB и SIMULINK и содержит элементарные сведения о пакете. В первую очередь это относится к разделам 1-3, где даются минимальные сведения о MATLAB и SIMULINK, необходимые для выполнения лабораторных работ по курсу «Моделирование». Разделы 4-6 предназначены для более глубокого знакомства с пакетом, в них подробнее описываются его графические и математические возможности, файловая система, типы данных. Из многочисленных тулбоксов MATLAB в пособии затронуты лишь некоторые, в частности, CONTROL, SYMBOLIC и OPTIMIZATION. 1. ЭЛЕМЕНТАРНЫЕ СВЕДЕНИЯ О ПАКЕТЕ 1.1. Структура пакета Пакет MATLAB широко используется во всем мире при решении задач, связанных с матричными вычислениями. Название пакета образовано путем сокращения от MATrix LABoratory (матричная лаборатория). Операции и команды в MATLAB достаточно естественны и аналогичны математической записи формул на бумаге. MATLAB создавался как пакет программ, реализующих наиболее эффективные вычислительные алгоритмы линейной алгебры. Он организован таким образом, чтобы пользователь имел возможность применять при работе обычный математический язык. В настоящее время пакет MATLAB представляет собой развитую интегральную программную среду, включающую собственный язык программирования. Он дает пользователю возможность быстро выполнять различные операции над векторами и матрицами, такие как умножение и обращение матриц, вычисление определителей, нахождение собственных чисел и векторов. Кроме того, в MATLAB входят операции вычисления обычных функций (алгебраических, тригонометрических, логических), решения алгебраических и дифференциальных уравнений, операции построения графиков и ряд других. MATLAB является языком высокого уровня. По отдельным его командам можно выполнять такие сложные операции, как нахождение корней полиномов, решение линейных и нелинейных алгебраических уравнений, моделирование линейных динамических систем. Указанные операции являются элементарными функциями MATLAB. Помимо ядра, реализующего вычислительные алгоритмы общего назначения, в пакете MATLAB реализовано несколько десятков так называемых тулбоксов (библиотек специализированных подпрограмм), предназначенных для решения разнообразных практических 7 задач. Например, тулбокс SYMBOLIC предназначен для выполнения символьных вычислений, а тулбокс CONTROL – для расчета и моделирования систем автоматического управления. Его надо повернуть! Ядро Matlab Встроенные функции Aerospace Communications Fixed point CDMA reference Dials and gauges DSP Data acquisition Sym mechanics Identification Control systems Curve fiting Financial Fuzzy logic Image processing Neural network Optimization Partial differential equation Signal processing Symbolic math System identification Robust control Virtual reality Simulink Stateflow Тулбоксы Real Time Workshop Стандартные m- функциии 8 Вместе с пакетом MATLAB, поставляется также среда для визуального моделирования структурных схем SIMULINK, технология работы в которой в значительной степени копирует технику моделирования на аналоговых вычислительных машинах. Общая структура системы MATLAB поясняется рис. 1.1. Его верхняя часть соответствует ядру MATLAB, содержащему быстро выполняемые встроенные функции (сложение, умножение, тригонометрические и другие базовые функции) и так называемые m-функции, алгоритмы выполнения которых написаны на языке MATLAB. Слева внизу показано семейство тулбоксов, каждый из которых содержит несколько десятков m-функций, справа – среда SIMULINK и связанные с ней средства (расширения и библиотеки блоков для разных приложений). 1.2. Начало работы 1.2.1. Запуск и элементарные операции При запуске MATLAB, как правило, открывается интерфейс, который содержит меню, панель инструментов и два окна – командное окно (Command Window) и окно рабочего пространства (Workspace). В случае если командное окно или окно рабочего пространства отсутствует, их можно активизировать во вкладке меню “View”. Команды вводятся в диалоговом режиме непосредственно в командное окно. Например, для того чтобы вычислить значение sin30 0 , надо в командном окне набрать текст sin(pi/6) и нажать клавишу Enter. На экране появится ответ ans=0.5. Если мы хотим построить график функции y=sint на интервале 10 0 t , то сначала следует сформировать массив значений аргумента (для этого в командном окне набираем t=0:.1:10; ), а затем набрать текст y=sin(t); plot(t, y). Разделительный знак «точка с запятой» ставится, чтобы не выводить на экран результаты промежуточных вычислений. После нажатия Enter в графическом окне появится график синусоиды. При желании его можно снабдить надписями и нанести координатную сетку (команда grid). В дальнейшем обе переменные t, y (каждая из них представляет собой массив из 101 числа) сохраняются в рабочем пространстве MATLAB и доступны для использования. Вместо того чтобы набирать команды в окне MATLAB, их можно записать в текстовый файл с расширением .m (он называется m-файл или файл-сценарий). Имя файла может быть любым, например, vova.m. Для того чтобы запустить файл сценарий, достаточно набрать его имя (без расширения) в командном окне: >> vova Чтобы MATLAB «увидел» файл, либо помещайте его в стандартный рабочий каталог, например C:\MATLAB \work\, либо укажите путь к нему. В разобранном примере использовалась функция sin. В состав MATLAB входят команды для вычисления более 50 элементарных функций. Обозначения наиболее употребительных из них приведены в табл. 1. Таблица 1 X Y X^2 EXP SIN ASIN SINH X * Y SQRT LOG COS ACOS COSH X / Y ABC LOG10 TAN ATAN ASINH 0 2 4 6 8 10 -1 -0.5 0 0.5 1 >>t=0:.1:10; y=sin(t); plot(t,y), grid Рис.1.2 9 В первом столбце перечислены команды для выполнения четырех арифметических действий. Второй столбец содержит операции возведения в квадрат, извлечения квадратного корня и взятие абсолютной величины (для комплексных чисел – модуля). Для вычисления каждой из этих функций нужно в круглых скобках указать значение аргумента (например, sqrt(4) даст ответ 2 ). В третьем столбце перечислены команды для получения экспоненты и логарифмов (натурального и десятичного), например exp(1) даст число е=2,71828 … Четвертый и пятый столбцы содержат прямые и обратные тригонометрические функции, а в последнем, шестом столбце находятся команды для вычисления гиперболических функций, которые в русской литературе обозначаются символами sh, ch, arcsh. Заметим, что аргумент функций |