- •Начала программирования в среде MatLab
- •Содержание
- •Предисловие
- •Введение
- •1. MatLAB как научный калькулятор
- •1.1. Командное окно
- •1.2. Операции с числами
- •1.2.1. Ввод действительных чисел
- •1.2.2. Простейшие арифметические действия
- •1.2.3. Ввод комплексных чисел
- •1.2.4. Элементарные математические функции
- •1.2.5. Специальные математические функции
- •1.2.6. Элементарные действия с комплексными числами
- •1.2.7. Функции комплексного аргумента
- •1.2.8. Задания
- •1.2.9. Вопросы
- •1.3. Простейшие операции с векторами и матрицами
- •1.3.1. Ввод векторов и матриц
- •1.3.2. Формирование векторов и матриц
- •1.3.3. Извлечение и вставка частей матриц
- •1.3.4. Действия над векторами
- •1.3.5. Поэлементное преобразование матриц
- •1.3.6. Матричные действия над матрицами
- •1.3.7. Матричные функции
- •1.3.8. Задания
- •1.3.9. Вопросы
- •1.4. Функции прикладной численной математики
- •1.4.1. Операции с полиномами
- •1.4.2. Обработка данных измерений
- •1.4.3. Функции линейной алгебры
- •1.4.4. Аппроксимация и интерполяция данных
- •1.4.5. Векторная фильтрация и спектральный анализ
- •1.4.6. Задания
- •1.4.7. Вопросы
- •1.5. Построение простейших графиков
- •1.5.1. Процедура plot
- •1.5.2. Специальные графики
- •1.5.3. Дополнительные функции графического окна
- •1.5.5. Задания
- •1.5.6. Вопросы
- •1.6. Операторы управления вычислительным процессом
- •1.6.1. Оператор условного перехода
- •1.6.2. Оператор переключения
- •1.6.3. Операторы цикла
- •1.6.4. Задания
- •1.6.5. Вопросы
- •2. Программирование в среде MatLAB
- •2.1. Функции функций
- •2.2. Создание М-файлов
- •2.2.1. Особенности создания М-файлов
- •2.3.1. Общие требования к построению
- •2.3.2. Типовое оформление процедуры-функции
- •2.3.3. Задания
- •2.3.4. Вопросы
- •2.4. Создание Script-файлов
- •2.4.1. Основные особенности Script-файлов
- •2.4.2. Ввод и вывод информации в диалоговом режиме
- •2.4.3. Организация повторения действий
- •2.4.4. Организация изменения данных в диалоговом режиме
- •2.4.5. Типовая структура и оформление Script-файла
- •2.5. Графическое оформление результатов
- •2.5.1. Общие требования к представлению графической информации
- •2.5.2. Разбивка графического окна на подокна
- •2.5.3. Вывод текста в графическое окно (подокно)
- •2.6. Создание функций от функций
- •2.6.1. Процедура feval
- •2.6.2. Примеры создания процедур от функций
- •2.6.3. Задания
- •2.7. Пример создания сложной программы
- •2.7.1. Программа моделирования движения маятника
- •2.7.2. Задания
- •3.1. Функции меню командного окна
- •3.1.2. Другие меню командного окна
- •3.1.3. Панель инструментов
- •3.2. Команды общего назначения
- •3.3. Создание М-книги
- •3.3.1. Начало новой М-книги
- •3.3.2. Написание М-книги
- •3.3.3. Редактирование М-книги
- •3.3.4. Преобразование документа WORD в М-книгу
- •3.3.6. Изменение параметров вывода результатов
- •4. Классы вычислительных объектов
- •4.1. Основные классы объектов
- •4.1.1. Класс символьных строк (char)
- •4.1.2. Класс записей (struct)
- •4.1.3. Класс ячеек (cell)
- •4.2. Производные классы MatLAB
- •4.2.1. Класс объектов Inline
- •4.2.2. Классы пакета CONTROL
- •4.3. Пример создания нового класса polynom
- •4.3.1. Создание подкаталога @polynom
- •4.3.2. Создание конструктора
- •4.3.3. Создание процедуры символьного представления polynom-объекта.
- •4.4. Создание методов нового класса
- •5.1. Формирование типовых процессов
- •5.1.1. Формирование одиночных импульных процессов
- •5.1.2. Формирование колебаний
- •5.2.1. Основы линейной фильтрации
- •5.2.2. Формирование случайных процессов
- •5.3. Процедуры спектрального (частотного) и статистического анализа процессов
- •5.3.1. Основы спектрального и статистического анализа
- •5.3.2. Примеры спектрального анализа
- •5.3.3. Статистический анализ
- •5.4. Проектирование фильтров
- •5.4.1. Формы представления фильтров и их преобразования
- •5.4.2. Разработка аналоговых фильтров
- •5.4.3. Проектирование БИХ-фильтров
- •5.5. Графические и интерактивные средства
- •5.5.1. Графические средства пакета SIGNAL
- •5.5.2. Интерактивная оболочка SPTOOL
- •6.1. Ввод и преобразование моделей
- •6.2. Получение информации о модели
- •6.3. Анализ системы
- •6.4. Интерактивный "обозреватель" ltiview
- •6.5. Синтез системы
- •7.1. Общая характеристика пакета SimuLink
- •7.1.1. Запуск SimuLink
- •7.1.2. Библиотека модулей (блоков)
- •7.1.3. Раздел Sinks (приемники)
- •7.1.4. Раздел Sources (Источники)
- •7.1.5. Раздел Сontinuous
- •7.1.6. Раздел Discrete
- •7.1.7. Раздел Math
- •7.1.8. Раздел Functions & Tables
- •7.1.9. Раздел Nonlinear
- •7.1.10. Раздел Signals & Systems
- •7.2. Построение блок-схем
- •7.2.1. Выделение объектов
- •7.2.2. Оперирование с блоками
- •7.2.3. Проведение соединительных линий
- •7.2.4. Проставление меток сигналов и комментариев
- •7.2.5. Создание подсистем
- •7.2.6. Запись и распечатка блок-схемы S-модели
- •7.3. Примеры моделирования
- •7.3.1. Моделирование поведения физического маятника
- •7.3.2. Моделирование поведения гироскопа в кардановом подвесе
- •7.4. Объединение S-моделей с программами MatLAB
- •7.4.2. Функции пересечения нуля
- •7.4.5. Образование S-блоков путем использования программ MatLab. S-функции
- •7.4.6. Пример создания S-функции
- •7.5.1. Создание библиотеки
- •7.5.2. Маскировка блоков
- •7.5.3. Моделирование процесса ориентации космического аппарата
- •Послесловие
- •Предметный указатель
- •Указатель операторов, команд, функций и функциональных блоков MatLAB
Содержание |
3 |
Содержание
Предисловие |
6 |
Вступление |
8 |
1. MatLAB как научный калькулятор |
11 |
1.1. Командное окно |
11 |
1.2. Операции с числами |
12 |
1.2.1. Ввод действительных чисел |
12 |
1.2.2. Простейшие арифметические действия |
14 |
1.2.3. Ввод комплексных чисел |
16 |
1.2.4. Элементарные математические функции |
17 |
1.2.5. Специальные математические функции |
18 |
1.2.6. Элементарные действия с комплексными числами |
20 |
1.2.7. Функции комплексного аргумента |
20 |
1.2.8. Задания |
21 |
1.2.9. Вопросы |
28 |
1.3. Простейшие операции с векторами и матрицами |
29 |
1.3.1. Ввод векторов и матриц |
29 |
1.3.2. Формирование векторов и матриц |
30 |
1.3.3. Извлечение и вставка частей матриц |
34 |
1.3.4. Действия над векторами |
36 |
1.3.5. Поэлементное преобразование матриц |
39 |
1.3.6. Матричные действия над матрицами |
41 |
1.3.7. Матричные функции |
43 |
1.3.8. Задания |
44 |
1.3.9. Вопросы |
46 |
1.4. Функции прикладной численной математики |
47 |
1.4.1. Операции с полиномами |
47 |
1.4.2. Обработка данных измерений |
50 |
1.4.3. Функции линейной алгебры |
54 |
1.4.4. Аппроксимация и интерполяция данных |
63 |
1.4.5. Векторная фильтрация и спектральный анализ |
66 |
1.4.6. Задания |
71 |
1.4.7. Вопросы |
74 |
1.5. Построение простейших графиков |
75 |
1.5.1. Процедура plot |
75 |
1.5.2. Специальные графики |
78 |
1.5.3. Дополнительные функции графического окна |
83 |
1.5.4. Вывод графиков в печать |
85 |
1.5.5. Задания |
85 |
1.5.6. Вопросы |
85 |
1.6. Операторы управления вычислительным процессом |
86 |
1.6.1. Оператор условного перехода |
86 |
1.6.2. Оператор переключения |
88 |
1.6.3. Операторы цикла |
88 |
1.6.4. Задания |
90 |
1.6.5. Вопросы |
92 |
2. Программирование в среде MatLAB |
93 |
2.1. Функции функций |
93 |
2.2. Создание М-файлов |
96 |
2.2.1. Особенности создания М-файлов |
96 |
2.2.2. Основные особенности оформления М-файлов |
97 |
2.3. Создание простейших файлов-функций (процедур) |
99 |
2.3.1. Общие требования к построению |
99 |
2.3.2. Типовое оформление процедуры-функции |
101 |
2.3.3. Задания |
102 |
2.3.4. Вопросы |
103 |
2.4. Создание Script-файлов |
103 |
2.4.1. Основные особенности Script-файлов |
103 |
2.4.2. Ввод и вывод информации в диалоговом режиме |
104 |
Содержание |
4 |
|
2.4.3. Организация повторения действий |
106 |
|
2.4.4. Организация изменения данных в диалоговом режиме |
107 |
|
2.4.5. Типовая структура и оформление Script-файла |
110 |
|
2.5. Графическое оформление результатов |
111 |
|
2.5.1. Общие требования к представлению графической информации |
111 |
|
2.5.2. Разбивка графического окна на подокна |
113 |
|
2.5.3. Вывод текста в графическое окно (подокно) |
114 |
|
2.6. Создание функций от функций |
118 |
|
2.6.1. Процедура feval |
118 |
|
2.6.2. Примеры создания процедур от функций |
119 |
|
2.6.3. Задания |
124 |
|
2.7. Пример создания сложной программы |
130 |
|
2.7.1. Программа моделирования движения маятника |
131 |
|
2.7.2. Задания |
140 |
|
3. Интерфейс MatLAB и команды общего назначения. М-книг |
141 |
|
3.1. Функции меню командного окна |
141 |
|
3.1.1. Меню "File" |
141 |
|
3.1.2. Другие меню командного окна |
151 |
|
3.1.3. Панель инструментов |
155 |
|
3.2. Команды общего назначения |
155 |
|
3.3. Создание М-книги |
157 |
|
3.3.1. Начало новой М-книги |
157 |
|
3.3.2. Написание М-книги |
158 |
|
3.3.3. Редактирование М-книги |
160 |
|
3.3.4. Преобразование документа WORD в М-книгу |
160 |
|
3.3.5. Некоторые особенности использования системы MatLAB |
160 |
|
3.3.6. Изменение параметров вывода результатов |
161 |
|
4. Классы вычислительных объектов |
162 |
|
4.1. Основные классы объектов |
162 |
|
4.1.1. Класс символьных строк (char) |
163 |
|
4.1.2. Класс записей (struct) |
166 |
|
4.1.3. Класс ячеек (cell) |
168 |
|
4.2. Производные классы MatLAB |
171 |
|
4.2.1. Класс объектов Inline |
171 |
|
4.2.2. Классы пакета CONTROL |
174 |
|
4.3. Пример создания нового класса polynom |
178 |
|
4.3.1. Создание подкаталога @polynom |
178 |
|
4.3.2. Создание конструктора |
178 |
|
4.3.3. Создание процедуры символьного представления polynom-объекта |
180 |
|
4.4. Создание методов нового класса |
182 |
|
5. Цифровая обработка сигналов (пакет Signal Processing Toolbox) |
188 |
|
5.1. Формирование типовых процессов |
190 |
|
5.1.1. Формирование одиночных импульсных процессов |
190 |
|
5.1.2. Формирование колебаний |
193 |
|
5.2. Общие средства фильтрации. Формирование случайных процессов |
199 |
|
5.2.1. Основы линейной фильтрации |
199 |
|
5.2.2. Формирование случайных процессов |
205 |
|
5.3. Процедуры спектрального (частотного) и статистического анализа процессов |
208 |
|
5.3.1. Основы спектрального и статистического анализа |
208 |
|
5.3.2. Примеры спектрального анализа |
212 |
|
5.3.3. Статистическийанализ |
221 |
|
5.4. Проектирования фильтров |
223 |
|
5.4.1. Формы представления фильтров и их преобразования |
223 |
|
5.4.2. Разработка аналоговых фильтров |
227 |
|
5.4.3. Проектирование БИХ-фильтров |
233 |
|
5.4.4. Проектирование КИХ-фильтров |
237 |
|
5.5. Графические и интерактивные средства |
245 |
|
5.5.1. Графические средства |
245 |
|
5.5.2. Интерактивная оболочка SPTOOL |
257 |
|
6. Исследование линейных стационарных систем (пакет Control Toolbox) |
270 |
Содержание |
5 |
|
6.1. Ввод и преобразование моделей |
272 |
|
6.2. Получение информации о модели |
286 |
|
6.3. Анализ системы |
288 |
|
6.4. Интерактивный "обозреватель" ltiview |
295 |
|
6.5. Синтез системы |
303 |
|
7. Моделирование нелинейных систем (пакет SimuLINK) |
308 |
|
7.1. Общая характеристика пакета SimuLink |
308 |
|
7.1.1. Запуск SimuLink |
308 |
|
7.1.2. Библиотека модулей (блоков) |
310 |
|
7.1.3. Раздел Sinks (Приемники) |
312 |
|
7.1.4. Раздел Sources (Источники) |
321 |
|
7.1.5. Раздел Continuous |
336 |
|
7.1.6. Раздел Discrete |
339 |
|
7.1.7. Раздел Math |
340 |
|
7.1.8. Раздел Functions & Tables |
345 |
|
7.1.9. Раздел Nonlinear |
346 |
|
7.1.10. Раздел Signals & Systems |
349 |
|
7.2. Построение блок-схем |
352 |
|
7.2.1. Выделение объектов |
352 |
|
7.2.2. Оперирование с блоками |
353 |
|
7.2.3. Проведение соединительных линий |
357 |
|
7.2.4. Проставленние меток сигналов и комментариев |
359 |
|
7.2.5. Создание подсистем |
362 |
|
7.2.6. Запись и распечатка S-модели |
363 |
|
7.3. Примеры моделирования |
363 |
|
7.3.1. Моделирование поведения физического маятника |
363 |
|
7.3.2. Моделирование поведения гироскопа в кардановом подвесе |
368 |
|
7.4. Объединение S-моделей с программами MatLab |
373 |
|
7.4.1. Принципы функционирования блоков системы SimuLink |
374 |
|
7.4.2. Функции пересечения нуля |
377 |
|
7.4.3. Передача данных между средой MatLab и S-моделью |
380 |
|
7.4.4. Запуск процесса моделирования S-модели из среды MatLab |
383 |
|
7.4.5. Образования S-блоков путем использования программ |
|
|
на языке MatLab. S-функции |
384 |
|
7.4.6. Пример создания S-функции |
388 |
|
7.5. Создание библиотек S-блоков пользователя |
396 |
|
7.5.1. Создание библиотеки |
396 |
|
7.5.2. Маскировка блоков |
402 |
|
7.5.3. Моделирование процесса ориентации космического аппарата |
405 |
|
Послесловие |
413 |
|
Список литературы |
414 |
|
Предметный указатель |
415 |
|
Указатель операторов, команд, функций и функциональных блоков MatLAB |
420 |
Предисловие |
6 |
Предисловие
В последние годы в университетских и инженерно-технических кругах мира наблюдается интенсивное распространение новой компьютерной системы осуществления математических расчетов - системы MatLAB. В чем причина такой популярности этой системы?
Главные преимущества "языка технических вычислений" MatLAB, которые выгодно отличают его среди других существующих ныне математических систем
ипакетов, состоят в следующем:
система MatLAB специально создана для проведения именно инженерных расчетов: математический аппарат, который используется в ней, предельно приближен к современному математическому аппарату инженера и ученого и опирается на вычисления с матрицами, векторами и комплексными числами; графическое представление функциональных зависимостей здесь организовано в форме, которую требует именно инженерная документация;
язык программирования системы MatLAB весьма прост, близок к языку BASIC, посилен любому начинающему; он содержит всего несколько десятков операторов; незначительное количество операторов здесь компенсируется большим числом процедур и функций, содержание которых легко понятно пользователю с соответствующей математической и инженерной подготовкой;
в отличие от большинства математических систем, MatLAB является открытой системой; это означает, что практически все процедуры и функции MatLAB доступны не только для использования, но и для корректировки и модифицирования; MatLAB - система, которая может расширяться пользователем по его желанию созданными им программами и процедурами (подпрограммами); ее легко приспособить к решению нужных классов задач;
очень удобной является возможность использовать практически все вычислительные возможности системы в режиме чрезвычайно мощного научного калькулятора; в то же время можно составлять собственные отдельные программы с целью многоразового их использования для исследований; это делает MatLAB незаменимым средством проведения научных расчетных исследований;
последние версии MatLAB позволяют легко интегрировать ее с текстовым редактором Word, что делает возможным использование при создании текстовых документов вычислительных и графических возможностей
MatLAB, например, оформлять инженерные и научные отчеты и статьи с включением в них сложных расчетов и выводом графиков в текст. Возможности системы огромны, а по скорости выполнения задач она опе-
режает многие другие подобные системы. Все эти особенности делают систему
Предисловие |
7 |
MatLAB весьма привлекательной для использования в учебном процессе высших учебных заведений.
Эта книга является вторым, переработанным и существенно дополненным изданием учебного пособия "Початки програмування в середовищі MatLAB" [11], содержит, в основном, описание MatLAB версии 5.3 и в него добавлены материалы по практическому овладению процедурами пакетов CONTROL (анализа и синтеза линейных систем автоматического управления), SIGNAL (цифровой обработки сигналов), SIMULINK (интерактивного моделирования динамических систем) и некоторых новых важных возможностей MatLAB.
Пособие состоит из семи глав.
Впервой главе читатель знакомится с возможностями системы в режиме научного калькулятора. Здесь помещены сведения об основных операторах, командах, функциях и процедурах системы.
Во второй главе описаны правила и примеры составления программ на языке MatLAB. Кроме того, в ней представлены некоторые дополнительные процедуры, которые помогают рационально организовать вычислительный процесс.
Третья глава содержит перечень некоторых процедур и команд общего назначения, которые связывают систему MatLAB с операционной системой компьютера. Здесь же описано использование редактора Word с системой MatLAB.
Важной частью MatLAB, которая позволяет приспосабливать систему к задачам пользователя, является возможность образования новых классов вычислительных объектов. С понятием классов вычислительных объектов в MatLAB и правилами создания новых классов пользователь ознакомится в четвертой главе.
Впятой главе сосредоточены сведения об особенностях использования процедур цифровой обработки сигналов пакета SIGNAL.
Содержание шестой главы - начальное ознакомление с особенностями работы с процедурами анализа и синтеза линейных стационарных систем автоматического управления пакета CONTROL.
Седьмая глава знакомит с пакетом SimuLink интерактивного (визуального моделирования динамических систем во временной области).
Вцелях удобства пользования учебным пособием его снабжен двумя алфавитными указателями - предметным и указателем операторов, команд, функций и функциональных блоков.
Впособии использованы материалы из изданий, указанных в списке лите-
ратуры.