
- •Начала программирования в среде 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
1.5. Построение простейших графиков |
83 |
FCH = angle(ch./zn)*180/pi; semilogx(OM,FCH); grid, title('Фазо-Частотная Характеристика'),
xlabel('Частота (рад/с)'), ylabel('Фаза (градусы)')
Врезультате получаются графики, изображенные на рис. 1.37 и 1.38.
1.5.3.Дополнительные функции графического окна
Обычно графики, получаемые с помощью процедур plot, loglog, semilogx и semilogy, автоматически строятся в таких масштабах по осям, чтобы в поле графика поместились все вычисленные точки графика, включая максимальные и минимальные значения аргумента и функции. Тем не менее, MatLAB имеет возможности установления и других режимов масштабировання. Это достигается за счет использования процедуры axis.
Команда axis([xmin xmax ymin ymax]) устанавливает жесткие границы поля графика в единицах величин, которые откладываются по осям.
Команда axis(‘auto') возвращает масштабы по осям к их штатному значению (принятому по умолчанию).
Команда axis(‘ij') перемещает начало отсчета в левый верхний угол и реализует отсчет от него (матричная система координат).
Команда axis(‘xy') возвращает декартову систему координат с началом отсчета в левом нижнем углу графика.
Команда axis(‘square') устанавливает одинаковый диапазон изменения переменных по осям графика.
Команда axis(‘equal') обеспечивает одинаковый масштаб по обоих осям графика.
В одном графическом окне, но на отдельных графических полях можно построить несколько графиков, используя процедуру subplot. Обращение к этой процедуре должно предшествовать обращению к процедурам plot, loglog, semilogx и semilogy и иметь такой вид:
subplot(m,n,p).
Здесь m - указывает, на сколько частей разделяется графическое окно по вертикали, n - по горизонтали, а р - номер подокна, в котором будет строиться график. При этом подокна нумеруются слева направо построчно сверху вниз (так, как по строкам читается текст книги).
Например, два предшествующих графика можно поместить в одно графическое окно следующим образом:
subplot(2,1,1); loglog(OM,ACH,'k'); grid; set(gca,'FontName','Arial','FontSize',12), title('Амплитудно-Частотная Характеристика'), ylabel('Амплитуда'), subplot(2,1,2); semilogx(OM,FCH,'k'); grid
title('Фазо-Частотная Характеристика') xlabel('Частота (рад/с)'), ylabel('Фаза (гр.)')
Результат представлен на рис. 1.39.

1.5. Построение простейших графиков |
84 |
||
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 1.39
Команда text(x, y, ‘<текст>’) позволяет расположить указанный текст на поле графика, при этом начало текста помещается в точку с координатами x и y. Значения указанных координат должны быть представлены в единицах величин, откладываемых по осям графика, и находиться внутри диапазона изменения этих величин. Часто это неудобно, так как требует предварительного знания этого диапазона, что не всегда возможно.
Более удобно для размещения текста внутри поля графика использовать команду gtext(‘<текст>’), которая высвечивает в активном графическом окне перекрестие, перемещение которого с помощью мыши позволяет указать место начала вывода указанного текста. После этого нажатием левой клавиши мыши или любой клавиши текст вводится в указанное место:
»gtext(' Ч Х')
»subplot(2,1,1);
»gtext(' Ч Х')
Именно таким образом установлены соответствующие записи на поле графиков рис. 1.39.
Чтобы создать несколько графических окон, в любом из которых расположены соответствующие графики, можно воспользоваться командой figure, которая создаст такое графическое окно, оставляя предшествующие.
Наконец, для того, чтобы несколько последовательно вычисленных графиков были изображены в одном графическом окне в одном стиле, можно использовать команду hold on, тогда каждый такой график будет строиться в том же предварительно открытом графическом окне, т. е. каждая новая линия будет добавляться к прежде построенным. Команда hold off выключает режим сохранения графического окна, установленного предшествующей командой.
1.5.4. Вывод графиков на печать
1.5. Построение простейших графиков |
85 |
Чтобы вывести график из графического окна (фигуры) на печать, т. е. на лист бумаги, следует воспользоваться командами меню, расположенного в верхней части окна фигуры. В меню File выберите команду Print. Подготовьте принтер к работе и нажмите кнопку <Ок> в окошке печати, - принтер распечатает содержимое графического окна на отдельном листе бумаги.
Для предварительной настройки на определенный тип принтера и установления вида печати используйте в том же меню File команду Print Setup.
1.5.5. Задания
Задание 1.9. Постройте в графическом окне MatLAB график функции из задания 1.5. Распечатайте этот график на листе бумаги.
Задача 1.10. Постройте в графическом окне MatLAB графики амплитудночастотной (модуля ЧПФ) и фазочастотной (аргумента ЧПФ) характеристик функции из задания 1.7. Распечатайте полученный график на листе бумаги.
1.5.6.Вопросы
1.Какие функции MatLAB осуществляют вывод графиков на экран?
2.Какими функциями обеспечивается снабжение графика координатными линиями и надписями?
3.Что такое "график вектора" и как его построить?
4.Как вывести график в виде столбцовой диаграммы?
5.Как построить гистограмму?
6.Можно ли построить несколько графиков в одной системе координат и в одном графическом окне?
7.Как вывести несколько отдельных графиков в разных графических окнах?
8.Как построить несколько отдельных графиков в одном графическом окне в разных графических полях?