Активный эксперимент проводится по заранее составленному плану, в соответствии с которым ставится задача не только определения оптимальных условий проведения эксперимента, но и оптимизации процесса. При определении оптимальных условий проведения процесса с использованием эмпирических моделей (например, методом Бокса-Вильсона) выходная переменная ŷ является критерием оптимальности или целевой функцией.
В теории активного эксперимента выходную (зависимую) переменную принято называть функцией отклика, а входные (независимые) переменные — факторами. Соответственно — координатное пространство с координатами (x1, x2, ...xm ) — факторным пространством, а геометрическое изображение функции отклика в факторном пространстве – поверхностью отклика.
Активный эксперимент планируется таким образом, чтобы упростить обработку его результатов методами регрессионного и корреляционного анализа.
Цель данной работы - показать как на основе теории активного эксперимента и экспериментальных данных можно получить стохастическое математическое описание процесса в виде уравнения регрессии. Для этого необходимо:
составить матрицу планирования эксперимента 2-го порядка для двух входных переменных Х1 и Х2 и реализовать машинный эксперимент на модели (черный ящик);
разработать Matlab-программу для расчета коэффициентов регрессии;
оценить адекватность полученного математического описания путем сравнения экспериментальных и расчетных данных по критерию Фишера;
построить поверхность отклика (объемный график)- f(x1,x2). Исходные данные.
интервал изменения Х1 60 £ Х1 £ 90;
интервал изменения Х2 10 £ Х2 £ 40.
В области факторного пространства, в которой линейная модель, получаемая планированием первого порядка, неадекватна, доминирующими являются коэффициенты, описывающие эффекты взаимодействия и квадратичные эффекты. Для адекватного описания этой области факторного пространства необходимо использовать нелинейные полиномы, поскольку функция отклика в данной области имеет экспериментальный характер. Эта область обычно называется почти стационарной.
В настоящее время наиболее широко для описания области, близкой к экстремуму, применяются полиномы второго порядка. Это связано с тем, что, во-первых, имеются хорошо разработанные планы второго порядка; во-вторых, с тем, что поверхности второго порядка легко поддаются систематизации и, следовательно, определению экспериментальной точки.
1. Составление матрицы планирования эксперимента
Предположим, что некоторое устройство («чёрный ящик») преобразует входной вектор X = [Х1; Х2] в выходную скалярную величину Y по неизвестному исследователю «чёрного ящика» закону. Будем считать, что исследователь на основе практических опытов имеет основание полагать, что «чёрный ящик» даёт функциональную зависимость в виде квадратичной формы:
Y = a X12 + b X22 + c X1X2 + d X1 + e X2 + f (1)
При этом имеются случайные отклонения величины Y.
Для получения матрицы планирования воспользуемся системой Matlab и ее командой cordexch(n,m,’model’), которая позволяет разработать D оптимальный трехуровневый план.
Формат записи: [x,xs]=cordexch(n,m,’model’), где
n = 2 – число входных переменных;
m = 9 – число опытов (выбрано произвольно, чем больше экспериментов, тем лучше);
’model’ = ‘quadratic’ – в соответствии с предполагаемой функциональной зависимостью;
[x,xs] – возвращаемые функцией cordexch план эксперимента (х) и расширенная матрица для расчета коэффициентов (xs).
Чтобы воспользоваться функцией cordexch, нужно исходные данные преобразовать в безразмерные величины по формулам
где Хi0 – среднее значение i-й входной переменной;
hi – интервал изменения i-й входной переменной относительно среднего значения.
Х10 = (90 + 60)/2 = 75; h1 = (90 – 60)/2 = 15;
Х20 = (40 + 10)/2 = 25; h2 = (40 – 10)/2 = 15.
В безразмерных системах кодирования всегда верхний уровень фактора +1, нижний -1, центр 0.
План проведения эксперимента также называют матрицей планирования. Матрица планирования обладает следующими общими свойствами:
Сумма столбцов по каждому Х равно 0;
Сумма столбцов скалярных произведений равно 0;
Сумма столбцов квадратов Х равно 0.
Проверка адекватности уравнения регрессии (ПФЭ) проводится так же, как и при проведении пассивного эксперимента, с использованием табличного значения критерия Фишера. Для проверки адекватности составляется следующее соотношение:
где – дисперсия адекватности, k – число входных переменных, N – число опытов.
Если полученное отношение оказывается меньше табличного – уравнение адекватно.
Результат выполнения в командной строке:
>> [x,xs]=cordexch(2,10,'quadratic')
x =
-1 -1
1 1
1 -1
-1 1
1 0
-1 0
0 1
0 -1
0 0
-1 -1
xs =
1 -1 -1 1 1 1
1 1 1 1 1 1
1 1 -1 -1 1 1
1 -1 1 -1 1 1
1 1 0 0 1 0
1 -1 0 0 1 0
1 0 1 0 0 1
1 0 -1 0 0 1
1 0 0 0 0 0
1 -1 -1 1 1 1
Примечание. При каждом запуске программы cordexch может быть сгенерирована другая матрица.
В матрице планирования «1» означает максимальное значение переменной, «0» - среднее значение, а «-1» минимальное значение. Далее все входные сигналы предполагаем преобразованными в безразмерные величины, изменяющиеся в интервале [-1;1].
2. Реализация машинного эксперимента
Построим следующую модель «черного ящика» :
Рис. 1. Модель «черный ящик»
Поочередно подавая на вход «черного ящика» строки вектора x, сформируем выходной вектор Y.
Y =
17.9525
-3.8475
31.7525
3.5525
9.7525
6.5525
-2.6475
22.3525
5.6525
3. Разработка Matlab-программы для расчета коэффициентов регрессии и построения графиков.
Программа для расчета коэффициентов регрессии и построения графиков представлена в файле b_reg.m:
[k,n]=size(xs);
b=regress(Y,xs); %вычисление коэффициентов регрессии
yr=xs*b; %расчет выходного сигнала по уравнению регрессии
dy1=(Y-yr).^2;
sad=sum(dy1)/(n-k); %расчет дисперсии адекватности
ys=mean(Y);
dys=(Y-ys).^2;
ssr=sum(dys)/(n-1); %расчет дисперсии относительно среднего
fisher=ssr/sad; %расчет критерия Фишера
disp('koeff f, d, e, c, a, b'); %индикация результатов
disp(b);
disp('experiment & ras4et');
disp('Y yr Y-yr');
disp([Y yr Y-yr]);
disp('');
disp('sad ssr');
disp([sad ssr]);
disp('Fisher');
disp(fisher);
%построение трехмерного графика
[x1,x2]=meshgrid([-1:0.1:1]); %задание сетки х1,х2
gr_Y=b(1)+b(2)*x1+b(3)*x2+b(4)*x1.*x2+b(5)*x1.^2+b(6)*x2.^2;
surf(x1,x2,gr_Y);box;
grid on
xlabel('x1'); %подписи осей
ylabel('x2');
zlabel('Y');
title ('otklik'); %заголовок графика
%построение плоского графика Y=f(x1)
figure;
hold on;
grid on;
x11=[-1:0.01:1];
plot(x11,gr_x1x2(x11,-1,b),x11,gr_x1x2(x11,0,b),x11,gr_x1x2(x11,1,b));
legend('x2=-1','x2=0','x2=1'); %задание легенды – подписи где какая линия
xlabel('x1');
ylabel('Y');
title ('Y=f(x1)');
%построение плоского графика Y=f(x2)
figure;
hold on;
grid on;
%здесь запоминается идентификатор графика, потому что линии при х1=-1 и х1=1 совпали
hplot=plot(x11,gr_x1x2(-1,x11,b),x11,gr_x1x2(0,x11,b),x11,gr_x1x2(-1,x11,b));
legend('x1=-1','x1=0','x1=1');
xlabel('x2');
ylabel('Y');
title ('Y=f(x2)');
%чтобы проявить первую линию, её график делаем толще
set(hplot(1),'linewidth',3);
Для сокращения объема кода функция вычисления выходных значений оформлена m-файлом gr_x1x2.m:
function f = gr_x1x2(x11,x12,b)
f=b(1)+b(2)*x11+b(3)*x12+b(4)*x11.*x12+b(5)*x11.^2+b(6)*x12.^2;
Результаты работы:
>> koeff f, d, e, c, a, b
5.6525
1.6000
-12.5000
-5.3000
2.5000
4.2000
experiment & ras4et
Y yr Y-yr
17.9525 17.9525 0.0000
-3.8475 -3.8475 0.0000
31.7525 31.7525 0
3.5525 3.5525 0.0000
9.7525 9.7525 0.0000
6.5525 6.5525 0.0000
-2.6475 -2.6475 0.0000
22.3525 22.3525 0
5.6525 5.6525 0.0000
sad ssr
-0.0000 233.6450
Fisher
-1.8101e+030
>>
Дисперсия адекватности практически равна нулю, а критерий Фишера меньше табличного – полученное математическое описание эксперимента адекватно.
Рис. 2. Функция отклика
Рис. 3. График линий равных уровней
Выводы:
В результате работы был проведен активный эксперимент на модели «черный ящик», разработана Matlab-программа для расчета коэффициентов в уравнении регрессии, рассчитан критерий Фишера и сделано суждение об адекватности полученного уравнения, а так же построены график отклика (рис.2) и линий равных уровней (рис. 3).
Уравнение регрессии для составленной матрицы планирования:
у = 5,15 +1,6x1-15,5x2-5,3x1x2+2,5 x12+4,2x22.