Материал: 4303

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

6

Лабораторная работа № 1 Интерполяция в системе Matlab

Цель работы: получить аналитическое выражение функциональной зависимости от аргумента, заданного аналитически или графиком.

Общие сведения

Интерполяция - построение приближенного или точного аналитического выражения функциональной зависимости, когда о ней известны только соотношения между аргументом и соответствующими значениями функции в конечном ряде точек. Интерполяция имеет следующие применения в АСУТП:

-линеаризация и интерполяция сигналов датчиков;

-формирование непрерывно изменяющегося сигнала по коэффициенту временного полинома или числовой программе в системах программного регулирования;

-получение аналитического выражения статической (обычно в виде квадратичной формы от входных воздействий) или динамической (обычно в виде дробно-рациональной передаточной функции) характеристик по экспериментально полученным точкам в задачах идентификации и характеризации;

-получение аналитического выражения корреляционных функций или спектральных плотностей при статистической обработке данных;

-переход от одной формы математического описания к другой в задачах характеризации;

-интерполяция таблиц, номограмм, диаграмм, хранящихся в памяти ЭВМ, для определения каких-либо параметров, например, параметров ПИДрегулятора по номограммам.

Интерполирование функций будем вести с помощью компьютерных технологий. Компьютерная технология интерполяции – есть последовательность выполнения функций и команд компьютера для решения задач интерполяции. Она состоит из следующих действий:

-выбор вида функции интерполяции с помощью компьютера;

-использование функций и команд универсального программного средства для получения математической модели;

-способы построения графиков функций, заданных в табличном и формульном видах;

-соответствие графика, построенного по данным таблицы аналитической функции;

-способы вычисления значений функции и ее табулирование;

-операции с векторами и матрицами;

-решение систем линейных и нелинейных уравнений;

-способы вычисления табличных разностей.

7

Компьютерные технологии решения задач интерполяции в системе Matlab.

Технология решения задач интерполяции состоит в выполнении на компьютере следующих действий:

-ввод исходных данных;

-визуализация исходных данных;

-выбор функции интерполяции;

-образование системы уравнений;

-решение системы уравнений;

-проверка правильности решения задачи;

-определение погрешности интерполяции.

Внастоящем разделе приводятся сведения о системе Matlab лишь с позиции решения задач интерполяции и умения выполнять перечисленные выше действия.

Ввод исходных данных.

Диалог с системой Matlab происходит посредством командного окна, которое становится доступным пользователю сразу же после запуска программы. Окно имеет меню, панель инструментов, полосы прокрутки, а также зону редактирования и просмотра.

Здесь же можно увидеть и строку ввода со знаком приглашения ». Попробуем выполнить простейшие действия. Введем в строку ввода выражение: » х = 2 + 3. Для выполнения действия нажмем клавишу

<Enter>.

Невозможность редактирования ранее введенной команды простой установкой курсора в нужную строку является одной из особенностей системы Matlab. Для того чтобы повторить ранее введенную команду, необходимо установить курсор в строку ввода и воспользоваться клавишами <↑> (стрелка вверх) и <↓> (стрелка вниз). Эти клавиши позволяют пролистать стек введенных ранее команд и оставить в строке именно ту команду, которая необходима. Команду можно выполнить сразу (нажав клавишу <Enter>) или после редактирования.

Методический пример

Пусть функция задана в виде таблицы (табл. 1). Это зависимость плотности перегретого пара от температуры при давлении Р = 0,470 МПа.

Таблица 1 Зависимость плотности перегретого пара от температуры при

давлении Р = 0,470 МПа

8

Поскольку MATLAB читает только латинские буквы, присвоим t=x,

ρ=y.

Создадим и введем два вектора-строки х и у: x = [170 180 190 200 210 220 230 240 250 260];

y = [2.382 2.321 2.265 2.211 2.161 2.113 2.067 2.024 1.982 1.943];

На рис. 1 показаны векторы и отклики, полученные при нажатии клавиши <Enter>.

Рис. 1 Векторы и отклики зависимости плотности перегретого пара от температуры

Итак, мы имеем две вектор-строки (x и y), которые содержат интересующие нас данные.

Визуализация исходных данных

Система Matlab имеет большие возможности графического представления информации.

Познакомимся только с теми из них, которые нам необходимы. Основной является функция plot, которая имеет вид

plot(x1, y1, x2, y2, ..., xn, yn, sn).

Здесь: xi - i-тый массив аргументов, заданный в виде вектора; уi - массив значений функции для заданного массива аргументов; si - стиль графика для i-той функции.

Стиль можно не задавать. В этом случае проблему выбора стиля система MATLAB решает самостоятельно.

Построим график функции, заданной табл. 1. Последовательность команд будет иметь вид: x = [170 180 190 200 210 220 230 240 250 260];

y = [2.382 2.321 2.265 2.211 2.161 2.113 2.067 2.024 1.982 1.943]; plot(x,y).

После нажатия кнопки <Enter> получим график функции рис. 2.

9

Рис. 2 График зависимости плотности пара от температуры

Выбор вида функции интерполяции

В АСУТП наиболее часто встречается интерполяция таблиц, графиков, номограмм, диаграмм, хранящихся в памяти ЭВМ, для определения каких-либо параметров. Поэтому необходимо иметь точное аналитическое описание функций. Такой выбор может обеспечить интерполяция точная в узлах.

Интерполяция точная в узлах - такая интерполяция, при которой значения функции интерполяции совпадают с ее действительными значениями во всех узлах. Выбор вида функции интерполяции будем искать в виде полинома.

Полиномиальная интерполяция.

Интерполяция полиномами в среде Matlab осуществляется с помощью функции polyfit, которая имеет вид: polyfit (x,y,n).

Здесь: x - вектор узлов интерполяции; y- вектор значений функции в узлах интерполяции; n - степень полинома.

Откликом при реализации функции polyfit является вектор коэффициентов: a, b, c, d... полинома axn + bxn-1 +cxn-2 +....

Пусть функция задана в виде табл. 1. Будем искать функцию интерполяции, представляющую собой многочлен третьей степени.

Процедуры интерполяции в Matlab имеют вид:

>>x=[170 180 190 200 210 220 230 240 250 260];

>>y=[2.382 2.321 2.265 2.211 2.161 2.113 2.067 2.024 1.982 1.943];

10

>> p=polyfit (x, y, 3)

После нажатия кнопки <Enter> получим ответ в следующем виде: p =

-0.0000 0.0000 -0.0161 4.1757

Тогда функцией интерполяции будет следующий полином третьей степени:

φ(x) = -0.0161 x + 4.1757,

или

φ(t) = -0.0161 t + 4.1757.

По этой формуле можно определять значение плотности пара в зависимости от температуры.

Всистеме Matlab имеется функция вычисления математического выражения при заданных значениях аргументов. Функция имеет вид:

polyval (p, x).

Здесь: p - вычисляемая функция; x - вектор аргументов функции. Воспользуемся этой функцией для проверки достоверности

результатов интерполяции.

Введем функцию f=polyval (p,x) и нажмем кнопку <Enter>. Откликом будет следующее решение:

f =

2.3817 2.3215 2.2648 2.2113 2.1607 2.1127 2.0672 2.0239

1.9825 1.9427

Сравнивая это решение с вектором у исходных данных, видим, что они отличаются несущественно, а значит интерполяционный полином f(x) третьей степени хорошо отображает исходную функцию.

Вычислим теперь абсолютную среднеквадратическую погрешность аппроксимации по формуле:

Внашем случае:

Тогда вычислительные процедуры в системе Matlab будут иметь вид: z = у - f;

w = z . * z ;

Здесь точка перед знаком умножения означает что операция умножения выполняется поэлементно, т.е. с каждым элементом массива чисел (вектора строки).

R = sum (w);