В результате на экране появится дополнительное окно с графиком.
Графики имеют несколько недостатков:
- на них не нанесена сетка из координатных линий, что затрудняет «чтение» графиков;
- нет общей информации о кривых графика (заголовка);
- неизвестно, какие величины отложены по осям графика.
Первый недостаток устраняется с помощью функции grid. Если эту функцию записать сразу после обращения к функции plot.
Ценной особенностью графиков построенных в системе MatLAB, является то, что сетка координат всегда отвечает «целым» шагам изменения, что делает графики «читабельными», т.е. по графику можно производить «отсчет» значения функции при любом заданном значении аргумента и наоборот. Таким свойством не обладает большинство графических пакетов – приложений к языкам программирования высокого уровня.
Заголовок графика выводится с помощью процедуры title. Если после обращения к процедуре plotвызвать title таким образом:
Title (‘<текст>’)
то сверху в поле фигуры появится текст, записанный между скобками. При этом следует помнить, что текст всегда должен помещаться в апострофы.
Аналогично можно вывести пояснение к графику, которые размещаются вдоль горизонтальной оси (функция xlabel) и вдоль вертикальной оси (функция ylabel).
Не более сложным является вывод в среде MatLAB графиков функций, заданных параметрически. Пусть необходимо построить график функции y(x), которая заданна параметрическими формулами:
выбрать диапазон изменения параметра t от 0 до 50 с шагом 0,1 и построить график.
7.2 Специальные графики.
Большим удобством, предоставляемым системой MatLAB, является возможность не указывать аргумент функции при построении ее графиков. В этом случае в качестве аргумента система принимает номер элемента вектора, график которого строиться.
Пользуясь этим можно построить график любого вектора.
Более наглядным является представление вектора в виде столбчатой диаграммы с помощью функции bar.
Если функция заданна своими назначениями при дискретных знаниях аргумента и неизвестно, как она может изменятся в промежутках между значениями аргумента, удобнее представлять график такой функции в виде отдельных вертикальных линий для каждого из заданных значений аргумента. Это можно сделать, применяя процедуру stem, обращение к которой аналогично обращению к процедуре plot.
Еще одна полезная инженеру функция – hist (построение графика гистограммы заданного вектора). Стандартное обращение к ней имеет вид:
Hist (y,x)
Где y – вектор, гистограмму которого нужно построить; x – это вектор, определяющий интервалы изменение первого вектора, внутри которого подсчитывается число элементов вектора y. Эта функция производит две операции.
- подсчитывает число элементов вектора y, значение которых попадают внутрь диапазона, указанного вектором x ;
- строит столбчатую диаграмму подсчитанных чисел элементов вектора y как функцию указанных вектором x диапазонов. В качестве примера рассмотрим построение гистограммы, случайных величин, которые формируются встроенной функции randn.
Возьмем общее число элементов вектора случайных величин 10000. Построим гистограмму для диапазона изменения этих величин от –3 до+3 с шагом 0.1.
Тогда график функции можно построить:
X = -3:0.1:3
Y = randn(10000,1)
Hist(y,x)
Ylabel (‘число с 10000’)
Xlabel(‘аргумент’)
Title(‘гистограмма нормального распределения’)
Процедура comet (x,y) («комета») строит график зависимости y(x) постепенно во времени в виде траектории кометы (ставится в конце совокупности операторов). При этом изображающая точка на графике имеет вид маленькой кометы (с головкой и хвостиком), которая плавно перемещается от одной точки к другой. (Построить с помощью данной функции график представленных выше параметрических формул)
MatLAB имеет несколько функций, позволяющих строить графики в логарифмическом масштабе.
Функция logspase с обращением:
X=logspase (d1, d2, n)
формирует вектор-строку x, содержащую n равноотдаленных в логарифмическом масштабе друг от друга точек, которые покрывают диапазон от до .
Функция LogLog полностью аналогична функции plot, но графики по обеим осям строятся в логарифмическом масштабе. Для построения графиков, использующих логарифмический масштаб только по одной из координатных осей, пользуются процедурами similogx и semilogy. Первое процедура строит графики с логарифмическим масштабом вдоль горизонтальной оси, вторая – вдоль вертикальной оси. Обращение к последним трем процедурам полностью аналогична обращению к функции plot.
В качестве примера рассмотрим построение графиков амплитудно-частотной и фазо-частотной характеристик звена, описываемого передаточной функцией:
W(p)=
Для этого следует, во-первых, создать векторы-полиномы числителя Pc= [1 4] и знаменателя Pz = [1 4 100] передаточной функции.
Во-вторых, определить корни этих двух полиномов (сделать самостоятельно).
В-третьих, задать диапазон изменения частоты таковым, чтобы он охватывал все найденные корни.
Om0=1e-2; omk=1e2
Затем задать количество точек графика n = 41
И сформировать массив точек по частоте ОМ = logspase(-2,2,41), где значения –2 и 2 соответствуют десятичным порядкам начального (om0) и конечного (omk) значений частоты.
Пользуясь функцией polyval, можно вычислить сначала вектор ch комплексных значений числителя частотой передаточной функции, соответствующей заданной передаточной функции, если в качестве аргумента функции polyval использовать сформированный вектор частот ОМ, элементы которого умножены на мнимую единицу. Аналогично вычисляются комплекснозначный вектор zn знаменателя ЧПФ.
Вектор значений АЧХ (амплитудно-частотной характеристики) можно найти, вычисляя модули векторов числителя и знаменателя ЧПФ и деля поэлементно полученные векторы. Чтобы найти вектор значений ФЧХ (фазо-частотной характеристики) надо разделить поэлементно комплекснозначные векторы числителя и знаменателя ЧПФ и определить вектор аргументов элементов полученного вектора.
Чтобы фазы представить в градусах, полученные результаты следует умножить на 180 и разделить на π.
Для построения графика АЧХ в логорифмическом масштабе, достаточно применить функцию LogLogа для построения ФЧХ удобнее воспользоваться функцией semilogs.
Обычно графики, получаемые с помощью процедур plot, loglog, semilogx, semilogy,автоматически строятся в таких масштабах, чтобы в поле графика поместились все вычисленные точки, включая максимальные и минимальные значения аргумента и функции. Но MatLAB не имеет возможности определения и других режимов масштабирования. Это достигается за счет использования процедуры axis.
Команда axis ([xmin xmax ymin ymax])устанавливает жесткие границы поля графика в единицах величин, откладываемых по осям.
Команда axis(‘auto’) возвращает масштабы по осям к их штатным значениям (принятым по умолчанию).
Команда axis(‘ij’)перемещает начало отсчета в левый верхний угол и реализует отсчет от верхнего левого угла (матричная система координат).
Команда axis(‘xy’) возвращает декартову систему координат с началом отсчета в левом нижнем углу.
Команда axis(‘sqare’) устанавливает одинаковый диапазон изменения переменных по осям графика.
Команда axis(‘equal’) обеспечивает одинаковый масштаб по обеим осям графика.
В одном графическом окне, но на отдельных графических полях можно построить несколько графиков, используя процедуру subplot.
Обращение к этой процедуре должно предшествовать обращению к процедурам plot, loglog, semilogx и semilogy и выглядеть так:
Subplot (m, n, p)
Здесь м указывает, на сколько частей делится графическое окно по вертикали, n – по горизонтали, а p – является номером подокна, в котором будет строиться график. Подокна нумеруются слева направо, сверху вниз (так, как читается текст книги).
Команда text (x,y , ‘<текст>’)позволяет разместить указанный текст в поле графика, при этом начало текста помещается в точку с координатами x и y. Значения указанных координат должны быть представлены в единицах величин, откладываемых по оси графика, и находящихся внутри диапазона изменений этих величин, что неудобно.
Более удобно для размещения текста внутри поля графика является использование команды gtext (‘<текст>’), с помощью которой в активном графическом окне высвечивается перекрестие. Перемещая перекрестие с помощью мыши, можно указать место начала вывода указанного текста. Нажатием левой кнопки мыши или любой клавиши текст вводится в указанное место.
Чтобы создать несколько графических окон, в каждом из которых размещаются соответствующие графики, можно воспользоваться командой figure, которая создаст новое графическое окно, оставляя предыдущее.
Наконец, для того чтобы несколько последовательно вычисляемых графиков были отображены в одном графическом окне, можно использовать команду: