165
“Young Scientist” . #7 (66) . May 2014
Technical Sciences
Рис.
1. Блок‑схема алгоритма МГУА
Рис.
2. Выборки технологических параметров нагнетателя ГПА КС «Бердичев»
166
«Молодой учёный» . № 7 (66) . Май, 2014 г.
Технические науки
2
2
2
min ( ,
)
min ( ( ,
)
) ,
x
i
i
x
i
F x xdata
ydata
F x xdata
ydata
−
=
=
−
∑
(7)
где
x
— вектор коэффициентов аппроксимирующего полинома (целевая величина);
xdata
— входные данные;
ydata
— выходные данные;
( ,
)
F x xdata
— аппроксимирующая функция.
Таким образом, функция (6) рассчитывает коэффициенты для аппроксимирующей функции с помощью МНК [5, с. 1].
Ниже приведен фрагмент программы (m-файл MATLAB), реализующей расчет коэффициентов аппроксимирующих
полиномов согласно МГУА.
N = 363480 % количество значений параметров
x1 = transpose (P_in_1s); % давление до нагнетателя
x2 = transpose (T_in_1s); % температура до нагнетателя
x3 = transpose (n_1s); % обороты турбины нагнетателя
y = transpose (P_out_1s); % давление после нагнетателя
z = transpose (T_out_1s); % температура после нагнетателя
d = transpose (delta_P_1s); % перепад давления на конфузоре
% Комбинации входных параметров
x12 = [x1 (1: N) x2 (1: N)];
x13 = [x1 (1: N) x3 (1: N)];
x23 = [x2 (1: N) x3 (1: N)];
% Определение коэффициентов аппроксимирующих полиномов для давления на выходе
a12 = lsqcurvefit (@myfun, zeros (1,6),x12, y (1: N))
a13 = lsqcurvefit (@myfun, zeros (1,6),x13, y (1: N))
a23 = lsqcurvefit (@myfun, zeros (1,6),x23, y (1: N))
% Вычисление значений аппроксимирующих полиномов для давления на выходе
y12 = myfun (a12, [x1 x2])
y13 = myfun (a13, [x1 x3])
y23 = myfun (a23, [x2 x3])
% Среднеквадратичные отклонения полиномов от эталонных значений
sigma_y12 = sqrt (sum ( (y — y12).^2) / length (y));
sigma_y13 = sqrt (sum ( (y — y13).^2) / length (y));
sigma_y23 = sqrt (sum ( (y — y23).^2) / length (y));
% — 2-я итерация —
% Определение коэффициентов аппроксимирующих полиномов для давления
a1 = lsqcurvefit (@myfun, zeros (1,6), [y12 (1: N) y23 (1: N)],y (1: N))
a2 = lsqcurvefit (@myfun, zeros (1,6), [y12 (1: N) y13 (1: N)],y (1: N))
a3 = lsqcurvefit (@myfun, zeros (1,6), [y13 (1: N) y23 (1: N)],y (1: N))
% Вычисление значений аппроксимирующих полиномов
y1 = myfun (a1, [y12 y23])
y2 = myfun (a2, [y12 y13])
y3 = myfun (a3, [y13 y23])
% Среднеквадратичные отклонения полиномов от эталонных значений
sigma_y1 = sqrt (sum ( (y — y1).^2) / length (y))
sigma_y2 = sqrt (sum ( (y — y2).^2) / length (y))
Do'stlaringiz bilan baham: |