- •Операции с числами
- •Операции с векторами и матрицами
- •Функции прикладной численной математики
- •Построение графиков
- •Задание к лабораторной работе
- •Пример выполнения работы
- •Время, отведенное на лабораторную работу
- •Методические указания к лабораторной работе по курсу «Теория автоматического управления» для студентов специальности 210100
- •410054, Г. Саратов, ул. Политехническая, 77
Функции прикладной численной математики
К преимуществам системы MATLAB относиться то, что она позволяет выполнять стандартные математические операции, используемые в прикладной математике. К ним относятся операции с полиномами, обработка данных измерений, функции линейной алгебры, аппроксимация и интерполяция данных, векторная фильтрация и спектральный анализ сигналов.
Полиномы в среде MATLAB полином задается и сохраняется в виде вектора, элементами которого являются коэффициенты полинома от an до а0 в указанном порядке: Р = [an…а2 а1 а0]. Операции с полиномами приведены в таблице 11.
Таблица 11. Операции с полиномами
Обозначение |
Назначение |
conv(p1,p2) |
Умножение полиномов р1 и р2. Произведением двух полиномов степеней m и n называют полином степени n+m, коэффициенты которого определяются посредством простого перемножения этих полиномов |
deconv(p1,p2) |
Деление полинома р1 на полином р2. Данная функция определяет коэффициенты полинома, который является частным от деления р1 и р2 |
roots(p) |
Данная функция позволяет получить вектор, элементы которого являются корнями заданного полинома р |
poly(r) |
Данная функция позволяет получить вектор коэффициентов полинома по заданному вектору его корней, где r – заданный вектор значений корней |
polyval(p,x) |
Данная функция вычисляет значения полинома по заданному значению его аргумента, где р – заданный вектор коэффициентов полинома, х – заданное значение аргумента |
size(Y) |
Данная функция вычисляет размер полинома |
polyder(p1,p2) |
Даная функция вычисляет производную полинома. Она создает вектор коэффициентов полинома, представляющего собой производную заданного полинома |
Построение графиков
Вывод результатов вычислений в наглядной графической форме является одной из важнейших процедур в инженерной и научной практике. MATLAB предоставляет для этого широкие возможности.
Основной функцией, обеспечивающей построение графиков на экране дисплея , является функция plot. Общая форма обращения к ней:
plot(x1,y1,s1,x2,y2,s2…)
где x1,y1 – заданные векторы, элементами которых являются массивы значений аргумента (x1) и функции (y1), отвечающие первой кривой графика; x2, y2 – массивы значений аргумента и функции второй кривой и так далее; s1, s2 – символьные переменные, способные содержать до трех символов, обозначающих тип линии, соединяющей отдельные точки графика, тип точки графика, цвет линии.
Графики выводятся в отдельное графическое окно, которое называют фигурой. Например, для того, чтобы вывести график функции для значений аргумента от до с шагом необходимо сначала сформировать массив значений аргумента х:
>> x = -3*pi : pi/100 : 3*pi;
Затем вычислить массив соответствующих значений функции:
>> y = 3*sin(x+pi/3);
После этого построить график зависимости y(x):
>> plot(x,y).
Для вывода координатной сетки необходимо добавить процедуру grid. Заголовок графика выводиться с помощью процедуры title(‘текст’). Над графиком появиться текст, записанный между апострофами в скобках. Аналогично выводятся объяснения к графику, которые размещаются вдоль горизонтальной оси (функция xlabel) и вдоль вертикальной оси (функция ylabel).
Например, набрав последовательность ниже приведенных операторов можно получить график, представленный на рисунке 14:
>> x = -3*pi : pi/100 : 3*pi;
>> y = 3*sin(x+pi/3);
>> plot(x,y), grid;
>> title (‘function y=3*sin(x+pi/3)’);
>> xlabel (‘x’); ylabel(‘y’);
Рисунок 14. График функции
Система MATLAB предоставляет возможность не указывать аргумент функции при построении графика. В этом случае в качестве аргумента система принимает номер элемента вектора, график которого строиться. Для построения графика вектора задают сам вектор, например х=[1 2 3 4] и функцию plot(х).
Вектор можно представить в виде столбцовой диаграммы с помощью функции bar(x).
Если функция задана своими значениями при дискретных значениях аргумента и неизвестно, как она может изменяться в промежутках между значениями аргумента, удобнее представлять ее график в виде отдельных вертикальных линий для любого из заданных значений аргумента. Это можно сделать, применяя процедуру stem.
Для построения графика гистограммы заданного вектора используется функция hist(y,x), где y – вектор, гистограмму которого нужно построить; х – вектор, элементы которого определяют интервалы изменения первого вектора.
Процедура comet(x,y) строит график зависимости y(x) постепенно в виде траектории кометы. При этом «изображающая» точка на графике имеет вид маленькой кометы, которая плавно перемещается от одной точки к другой. Такие графики удобно использовать при анализе характера изменения траектории во времени.
MATLAB имеет несколько функций, которые позволяют строить графики в логарифмическом масштабе. Они представлены в таблице 12.
Таблица 12. Функции, строящие графики в логарифмическом масштабе
Обозначение |
Назначение |
logspace(d1,d2,n) |
Формирует вектор строку, содержащую n равноотстоящих в логарифмическом масштабе друг от друга значений в диапазоне от 10d1 до 10d2 |
loglog |
Создает графики по обеим осям в логарифмическом масштабе |
semilogx |
Создает графики с логарифмическим масштабом по оси х |
semilogy |
Создает графики с логарифмическим масштабом по оси y |
Например, нужно построить графики амплитудно-частотной и фазово-частотной характеристик звена, описываемого передаточной функцией:
Для этого нужно создать полином числителя передаточной функции Рс=[1 4] и полином знаменателя передаточной функции Pz=[1 4 100], затем определить корни этих полиномов. Затем следует задать диапазон изменения частоты, так, чтобы он охватывал вес найденные корни. Затем нужно задать количество точек графика и сформировать массив точек по частоте в логарифмическом масштабе, используя функцию logspace(d1,d2,n). Пользуясь функцией , можно вычислить сначала вектор комплексных значений числителя частотной передаточной функции, если в качестве аргумента функции polyval использовать сформированный вектор частот, элементы которого умножены на мнимую единицу. Аналогично вычисляется комплекснозначный вектор знаменателя частотной ПФ. Вектор значений амплитудно-частотной характеристики (АЧХ) можно найти, рассчитывая модули векторов числителя и знаменателя частотной ПФ и поэлементно деля полученные векторы. Чтобы найти вектор значений фазово-частотной характеристики (ФЧХ), нужно разделить поэлементно комплексные векторы числителя и знаменателя Частотной ПФ и определить вектор аргументов элементов полученного вектора. Для представления фазы в градусах, полученные результаты следует умножить на 180 и разделить на π. Для построения графика АЧХ достаточно применить функцию loglog, а для построения ФЧХ удобнее воспользоваться функцией semilogx. То есть:
>> P1 = [1 4]; P2 = [1 4 100];
>>roots(P1);
>>roots(P2);
>>om0=1e-2; omk=1e2;
>>OM=logspace(-2,2,41); p=i*OM;
>>ch=polyval(P1,p);zn=polyval(P2,p);
>> ACH=abs(ch)./abs(zn);
>>FCH=angle(ch./zn)*180/pi;
>>loglog(OM,ACH);grid
>>figure, semilogx(OM,FCH); grid
В результате выполнения набора этих команд будут построены графики, изображенные на рисунках 15 и 16.
Рисунок 15. Амплитудно-частотная характеристика частотной ПФ
Рисунок 16. Фазово-частотная характеристика частотной ПФ
В отдельном графическом окне, но на отдельных графических полях, можно построить несколько графиков, используя процедуру subplot(m,n,p), где m указывает, на сколько частей разделяется графическое окно по вертикали,n, соответственно, по горизонтали, а p является номером подокна, в котором будет строиться график. Обращение к этой процедуре должно предшествовать обращению к процедурам построения графиков.
Команда text(x,y,’ ‘) позволяет расположить указанный текст в поле графика, при этом начало текста помещается в точку с координатами x и y. Значения указанных координат должны быть представлены в единицах величин, откладываемых по осям графика, и находиться внутри диапазона изменения указанных величин. Более удобно для размещения текста внутри поля графика использовать команду gtext(‘ ’), в результате вызова которой в активном графическом окне появляется перекрестие; его перемещение с помощью мыши позволяет указать место начала вывода указанного текста.
Чтобы создать несколько графических окон, в каждом из которых расположены соответствующие графики, можно воспользоваться командой figure. Эта команда создает новое графическое окно, оставляя предыдущие.
Для того, чтобы несколько последовательно вычисленных графиков были изображены в графическом окне в одном стиле, можно использовать команду hold on, тогда каждый график будет строиться в том же предварительно открытом графическом окне. Команда hold off выключает режим сохранения графического окна, установленного предыдущей командой.