Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_Машиностроение и машиноведение +++ ЧАСТЬ 1.doc
Скачиваний:
12
Добавлен:
05.05.2019
Размер:
6.31 Mб
Скачать

Корреляционной функции между входом и выходом

Преобразовав уравнение (4) к матричной форме и выделяя вектор импульсной функции w(t), получим следующее соотношение

(5)

где выражения для отдельных матиц имеют вид

, (6)

(7)

где элементы qi=RQq(i)/ – вычисляются через ординаты взаимной корреляционной функции, wi – ординаты импульсной функции, RQ(i) – значения корреляционной функции входа.

Следует отметить, что для получения решения в виде вектора значений импульсной функции в среде Delphi7.0 применяются алгоритмы для численного решения систем алгебраических уравнений либо матричных вычислений, что требует написания соответствующих алгоритмов. В среде MATLAB данная процедура не вызывает затруднений, поскольку имеются специализированные математические функции.

Ниже представлен пример, реализующий такое решение:

A=toeplitz(Ruu);

w=inv(A)*Ryu';

где Ruu – вектор автокорреляционной функции, Ryu – вектор взаимной корреляционной функции. Функция T = toeplitz(С) возвращает симметрическую матрицу Теплица, определяемую однозначно вектором С.

Первая строка реализует встроенную функцию составления матрицы Теплица, с помощью которой получается матрица A, определяемая выражением (6). Вторая строка примера реализует вычисление вектора w по формуле (5), который содержит значения импульсной функции. На рис. 3, а  изображена полученная в результате вычислений, импульсная функция.

а б

Рис. 3. График импульсной функции и переходной функции

Определяя переходную функцию как интеграл от импульсной функции получаем кривую, изображенную на рис.3, б. Для вычисления интеграла в MATLAB имеется возможность численного интегрирования, например, используя функцию интегрирования методом трапеций. Ниже представлен пример вычисления переходной функции

for i=2:1:tm-2;

k=1:1:i;

f(i)=trapz(t(k),w(k));

end;

где tm - длинна вектора импульсной функции (w), f - получаемый вектор переходной функции; trapz(X,Y) - возвращает интеграл от функции Y по переменной X, используя метод трапеций (пределы интегрирования в этом случае задаются начальным и конечным элементами вектора X).

Внешний вид временных характеристик на рис.3, характеризующих динамику объекта, показывает, что передаточная функция объекта имеет вид колебательного звена, далее следует найти постоянные времени и коэффициент усиления.

Для удобства ввода исходных данных и получения графиков было разработано приложение в расширении среды MATLAB – GUI (Graphical User Interfaces), которое позволяет разрабатывать свои приложения с возможностью использования функций среды MATLAB.

Приложение (рис.4) содержит кнопки загрузки входного и выходного сигналов, компоненты задания интервалов данных из файлов с возможностью прореживания, графики входного и выходного сигнала, флажки выбора метода расчета корреляционных функций (с аппроксимацией или без) компоненты задания степени полинома аппроксимации корреляционных функций, графики корреляционной и взаимной корреляционной функции и графики импульсной и переходной функций, а также другие компоненты применяемые для настройки расчетов.

Загрузка сигналов в MATLAB производится с использованием процедуры мастера выбора текстового файла uigetfile, процедур открытия файла fopen и чтения строк fgetl. Ниже представлен пример загрузки данных в приложение.

[FileName, PathName] = uigetfile('*.txt;');

FullName = [PathName FileName];

FT = fopen(FullName,'r'); for i=1:1:max_len

VF = fgetl(FT); u1(i) = str2double(VF); end;

Рис. 4. Приложение в среде MATLAB с применением GUI

Таким образом, можно сказать, что пакет MATLAB предоставляет все необходимые средства для решения задач идентификации по статистическим данным.

Использование при разработке приложения расширения GUI (Graphical User Interfaces) облегчает решение сложных математических задач, позволяет разрабатывать свои приложения, делать их независимыми (возможность работы без требования установки среды MATLAB), дополнять инструментами ввода и вывода информации и вместе с тем пользоваться всей мощью представленных библиотек математических функций.