УДК 519.8:666.941
В.Г. Рубанов, д-р техн. наук, проф., директор ИТУС, (4722) 54-02-29, rubanov@intbel.ru (Россия, Белгород, БГТУ им. В.Г. Шухова), В. А. Порхало, программист, (4722) 30-99-46, porhalo@mail.ru (Россия, Белгород, БГТУ им. В.Г. Шухова)
ПРИМЕНЕНИЕ СРЕДЫ MATLAB И РАСШИРЕНИЯ GUI ДЛЯ ИДЕНТИФИКАЦИИ СЛОЖНОГО ОБЪЕКТА
Рассматривается получение математической модели процесса обжига клинкера с применением статистических методов. Представлено решение уравнения Винера - Хопфа в среде MATLAB с использованием средств GUI.
Ключевые слова: обжиг клинкера, идентификация, мат. модель, уравнение Винера - Хопфа, MATLAB.
Решение задач статистического анализа случайных процессов с целью идентификации сложных объектов возможно с применением большого числа математических пакетов. Специализированные пакеты обычно реализуют методы, используемые в конкретной предметной области. Анализ статистических данных требует от математического пакета наличия необходимых функций, удобного интерфейса настройки параметров вычислений, вывода графических результатов. Ниже рассмотрено применение известной среды MATLAB для получения математической модели процесса обжига клинкера.
Для решения задачи получения математической модели по статистическим данным во временной области воспользуемся уравнением Винера - Хопфа:
¥
RQq (t)= J RQ (t-l)-W(1)d1, (1)
0
где корреляционную функцию Rq(t) входа и взаимную корреляционную функцию RQq(x) между входом и выходом определяют по измеряемым входному Q(t) и выходному q(x) сигналу объекта. Решая данное уравнение, можно найти импульсную переходную (весовую) функцию w(t), а по ней и передаточную функцию W(s).
В процессе управления цементной печью используют большое количество измеряемых и управляемых сигналов (на рис.1). Ниже рассмотрено получение весовой функции, характеризующей взаимосвязь между этими сигналами.
а
б
Рис. 1. Графики изменения входного и выходного параметров
цементной печи: а - степень открытия шибера дымососа; б - нагрузка на главном приводе двигателя печи
В [1] изложено решение задачи идентификации на основе решения уравнения Винера - Хопфа с применением среды Delphi7.0, в которой было разработано программное приложение. При этом для вычисления оценок корреляционных функций составляется алгоритм, реализующий следующие соотношения:
* ✓ 1 п-к Яд (кДт) = - X
п - к/=1
(кДт) = П-к XX Ь - т*а +к - тд I (3)
m
Q
)Ъ+к - mQ I
(2)
г=1
где Qi=Q[i], qt=q[i] - значения случайного сигнала в i-м сечении; mQ и mq - оценки математических ожиданий; Rq и RQq - оценки корреляционной и взаимокорреляционной функций случайных процессов.
Программная среда Delphi 7.0 является хорошим средством написания объектно-ориентированных программ и программ, связанных с различными базами данных, но не обладает необходимыми для данных целей библиотеками математических функций, и для целей математического моделирования гораздо удобнее использовать специализированные математические пакеты, такие как MathCAD или MATLAB.
С целью унификации программного средства для получения математической частной модели процесса обжига клинкера была разработана программа в среде MATLAB, которая позволяет получать корреляционные функции, взаимные корреляционные функции исследуемых сигналов, ве-
15
совые функции, переходные функции. Для оценки точности вычислений с использованием предложенного инструментария было произведено сравнение найденных графиков с расчетами, полученными в среде MathCAD. Проверка показала хорошее совпадение получаемых расчетных данных и графиков.
Стоит отметить, что определение корреляционных функций в MATLAB производится гораздо проще, чем в среде программирования Delphi7.0, поскольку в первой для этого существует специальная математическая функция xcorr, которую можно использовать в расчетах.
Функция вычисления взаимной корреляции векторов и матриц хсогг имеет несколько форм записи [2], которые представлены ниже:
С=хсогг (А,В) - для векторов А и В с длиной М > 1 возвращает оценку взаимной корреляции в виде вектора С длиной 2М - 1 (в ином случае возвращает 0);
xcorr(A) при векторе А возвращает оценку автокорреляции; хсогг (.. ,SCALE0PT) - задает способ масштабирования корреляционной функции. Значение SCALE0PT определеяет следующие вычисления: 'biased' - вычисляется смещенная оценка корреляционной функции как 1/М;
'unbiased' - вычисляется несмещенная оценка корреляционной функции как 1/(M-abs(lags));
'coeff - осуществляется масштабирование так, чтобы значение корреляционной функции при нулевом смещении было равно 1,0;
'none' - масштабирование не производится (задано по умолчанию). Применение функции хсогг иллюстрирует следующий пример:
ryu=xcorr(y2,u2, 'biased1); ryu3=ryu(n:n+tm-2); где y2, u2 - векторы, содержащие значения выходного и входного сигнала соответственно, n - размер векторов.
После применения функции хсогг второй строкой выделяется область положительных значений, поскольку функция возвращает вектор значений корреляционной функции от -n до n. На рис.2. показаны графики вычисленных с использованием данной функции корреляционной функции входа и взаимной корреляционной функции между входом и выходом.
Как видно из рис. 2, корреляционные функции удовлетворяют требованиям эргодических стационарных процессов и стремятся с течением времени к нулю.
Решая интегральное уравнение Винера - Хопфа (1) численными методами, его сводят к решению системы алгебраических уравнений с числом уравнений, равным количеству полученных ординат корреляционных функций (2) - (3). При этом интеграл в уравнении (1) представляется конечной суммой:
N
R*q (£Ат)= X w(kAt)- RQ (kAt- пАт)Ат.
(4)
n=0
а
б
Рис. 2. Оценки корреляционной функции входа (а) и взаимной корреляционной функции между входом и выходом (б)
Преобразовав уравнение (4) к матричной форме и выделяя вектор импульсной функции "(1;), получим следующее соотношение:
1
Ж = А
где выражения для отдельных матиц имеют вид Яд (0) Яg(Дт) .........
Яд (ДТ) Яд(0) .........
А = Яд (2ДТ) Яд (ДТ) .........
(5)
Rq [(n - l)At] Rq [(n - 2)At] Rq [(n - 3)At]
Rq [(n - l)At] Rq [(n - 2)At]
T
(6)
W =
....... Rq (0)
T
w1 K wn\\ , Q = |qi qi K qn|| . (7)
Здесь элементы qi=RQq(iAx)/Ax вычисляются через ординаты взаимной корреляционной функции; w - ординаты импульсной функции; Rq(/') -значения корреляционной функции входа.
Следует отметить, что для получения решения в виде вектора значений импульсной функции в среде Delphi7.0 применяются алгоритмы для численного решения систем алгебраических уравнений либо матричных вычислений, что требует написания соответствующих алгоритмов. В среде MATLAB данная процедура не вызывает затруднений, поскольку имеются специализированные математические функции.
Ниже представлен пример, реализующий такое решение:
A =toeplitz(Ruu); w=inv(A)*Ryuf;
17
где Ruu - вектор автокорреляционной функции; Ryu - вектор взаимной корреляционной функции. Функция T = toeplitz(С) возвращает симметрическую матрицу Теплица, определяемую однозначно вектором С.
Первая строка реализует встроенную функцию составления матрицы Теплица, с помощью которой получается матрица А, определяемая выражением (6). Вторая строка примера реализует вычисление вектора по формуле (5), который содержит значения импульсной функции. На рис. 3, а изображена полученная в результате вычислений импульсная функция.
w h
а б
Рис. 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), дополнять инструментами ввода и вывода информации и вместе с тем пользоваться всей мощью представленных библиотек математических функций.
Список литературы
1. Порхало В.А., Рубанов В.Г. Получение математической модели обжига клинкера на основе решения уравнения Винера-Хопфа // Сб. трудов XXIII Междун. науч. конф. «Математические методы в технике и технологиях» (ММТТ-23). Саратов: СГТУ, 2010. Т.10. С. 132—135.
2. Дьяконов В.П., Абраменкова И.В. MATLAB. Обработка сигналов и изображений: специальный справочник. СПб.: Питер, 2002. 608 с.
V.G. Rubanov, V.A. Porkhalo
THE MATHEMATICAL MODEL IDENTIFICATION OF A COMPLEX OBJECT WITH THE MA TLAB AND GUI USAGE
There considered the identification of the process clinker burning with the statistical methods usage. For this the Wiener-Hopf equations are solved in MATLAB with use GUI.
Key words: clinker, identification, mathematical model, Wiener-Hopf equation, MATLAB.
Получено 14.12.11
УДК 629.488
С.В. Копачев, асп., 8(495)631-18-50, kopachev@miit.ru (Россия, Москва, МИИТ)
АНАЛИЗ ИССЛЕДОВАНИЙ В ОБЛАСТИ СОВЕРШЕНСТВОВАНИЯ ТЕХНОЛОГИЧЕСКОЙ ПОДГОТОВКИ ПРОИЗВОДСТВА И РЕМОНТА ПОДВИЖНОГО СОСТАВА
Рассмотрены основные направления и отличительные особенности исследований ТПП изделий на предприятиях машиностроительного и машиноремонтного производств. Основное внимание уделено исследованиям ТПП ремонтных предприятий сети железных дорог РФ.
Ключевые слова: технологическая подготовка производства, комплексная подготовка производства, ремонт подвижного состава.
Анализируя все многообразие причин, обеспечивающих в той или иной степени условия безопасности движения поездов, можно сделать вы-
20