ИННОВАТИКА 4 СЕМЕСТР РГР / Laboratorny_praktikum
.pdf
Раздел V. Методы разработки технологических инноваций
вания, технологической оснастки и площади) – это минимизируемые критерии, и максимизируемый критерий – коэффициент использования материала в перспективном технологическом процессе изготовления изделия.
Для задания входных величин в командное окно системы Matlab введем (рис. 4в, 5) после значка «>>» матрицу параметров (назовем ее F) различных вариантов выполнения технологической операции согласно табл. 2.
F = [7.18 259.12 2478.1 0.18;6.51 486.91 5146.43 0.22;7.01 360.15 2504.97 0.20];
и нажимаем на клавиатуре клавишу Enter.
Примечание 1: Ввод данной строки может осуществляться либо с клавиатуры, либо с помощью команд Копировать-Вставить, для этого скопируем строку, выделив ее левой кнопкой «мыши», далее правой кнопкой «мыши» щелкаем Копировать и в командном окне Matlab – правой кнопкой «мыши» по команде Вставить переносим эту строчку в командное окно системы MATLAB и нажимаем клавишу Enter на клавиатуре.
Примечание 2: Разделителем целой и дробной части чисел в Matlab является точка. Запись 7,18 вместо 7.18 система расценивает, как 2 разных числа, если данные по дробной части вводить через запятую.
3. Для формирования входных значений обучающей выборки нейронной сети Джордана (назовем ее V) и для работы с каждым вариантом технологической операции введем в командное окно Matlab после значка «>>» (рис. 5) следующие 3 строки, соответствующие строкам матрицы F (рис. 6):
V1 = [F(1,1) F(1,2) F(1,3) F(1,4)];
V2 = [F(2,1) F(2,2) F(2,3) F(2,4)];
V3 = [F(3,1) F(3,2) F(3,3) F(3,4)];
инажимаем на клавиатуре клавишу Enter.
4.Далее необходимо установить весовые коэффициенты (в интервале от 0 до 1), названные в формулах (1, 2) теоретической части лабораторного занятия. Для этого необходимо учитывать «важность» критерия оптимизации, цеховые данные (ведомостей оборудования, загрузки, нормирования времени и др.), а также факторы, влияющие на ресурсосбережение (численным выражением в этом случае является КИМ). При выполнении
461
Раздел V. Методы разработки технологических инноваций
данного лабораторного занятия в учебных целях значения весовых коэффициентов можно принять [3]:
–для штучного времени (Тшт) – 0,3;
–для приведенных затрат (или технологической себестоимости) изготовления детали на данной операции (С) – 0,2;
–для фондоемкости (Ф) – 0,15;
–для коэффициента использования материала (Ким) – 0,35.
Вкомандном окне системы Matlab (рис. 6) после значка «>>» названные весовые коэффициенты будут записаны следующим образом:
p1 = 0.3;
p2 = 0.2;
p3 = 0.15;
p4 = 0.35;
после чего необходимо нажать клавишу Enter на клавиатуре.
Рис. 6. Ввод весовых коэффициентов в командном окне системы Matlab для выполнения свертки критериев
Примечание: способы ввода строк в командное окно системы Matlab названы в примечании п. 2 методики выполнения задания.
5. Для решения данной задачи определена целевая функция (3), где Т, С, Ф, К – оптимизируемые параметры, а p – весовые коэффициенты, обозначающие «важность» заданного критерия оптимизации.
f i |
= p1 ×T + p2 × C + p3 ×Ф + p4 × K ® min |
(3) |
В связи |
с этим далее необходимо выполнить линейную |
|
(аддитивную) |
свертку (см. теоретическую часть лабораторного |
|
462
Раздел V. Методы разработки технологических инноваций
занятия), для этого каждую строку матрицы F приводим к безразмерному виду (полученные выражения назовем M1, M2 и М3 – соответственно количеству вариантов выполняемой операции). В этой связи для каждого полученного значения M1, M2 и М3 сформируем массив таких значений (одноуровневый массив), которые обозначим N, A, и B соответственно.
Так как коэффициент использования материала (Ким) в данном случае – максимизируемый критерий, в то время как все остальные критерии (Т, С, Ф) – минимизируемые, то это условие необходимо отразить при расчете линейной свертки критериев путем замены знака на противоположный, а именно: из единицы вычесть величину Ким, что отражено на рис.7 и в строках ниже.
В связи со сказанным введем в командное окно системы Matlab (рис. 6) следующие строки после значка «>>»:
M1 = [p1*F(1,1)+p2*F(1,2)+p3*F(1,3)+p4*(1-F(1,4))]; N = [M1 M1 M1 M1];
M2 = [p1*F(2,1)+p2*F(2,2)+p3*F(2,3)+p4*(1-F(2,4))]; A = [M2 M2 M2 M2];
M3 = [p1*F(3,1)+p2*F(3,2)+p3*F(3,3)+p4*(1-F(3,4))]; B = [M3 M3 M3 M3];
после чего нажимаем на клавиатуре клавишу Enter, что позволяет зафиксировать и использовать записи, указанные на рис. 7.
6. После сформированной таким образом входной выборки для многокритериальной оптимизации создадим нейронную сеть Джордана1 . Так как нейронная сеть Джордана является частным случаем нейронной сети Элмана, то она в системе Matlab также задается аналогичной командой «newelm».
Нейронная сеть создается для каждого массива, полученного по результатам линейной свертки: N, A и B, которые мы сформировали выше.
Создадим для анализируемых вариантов выполнения токарной операции перспективного техпроцесса три трехслойных нейронных сети Джордана (содержащих в учебных целях в первом слое 10 нейронов, во втором слое – 4 и в третьем слое – 1 нейрон), со следующими функциями активации нейронов:
1 эти действия подробно рассмотрены в предыдущих лабораторных занятиях
463
Раздел V. Методы разработки технологических инноваций
'tansig','compet','purelin' соответственно по каждому слою нейронной сети.
Синтаксис данных действий в командном окне MATLAB выглядит следующим образом (рис. 7):
net1 = newelm([0 1],[10 4 1],{'tansig','compet','purelin'},'trainbr','learnwh','msereg'); net2 = newelm([0 1],[10 4 1],{'tansig','compet','purelin'},'trainbr','learnwh','msereg'); net3 = newelm([0 1],[10 4 1],{'tansig','compet','purelin'},'trainbr','learnwh','msereg');
и нажимаем на клавиатуре клавишу Enter.
Примечание: названные команды для создания нейронной сети Джордана должны быть записаны в командном окне Matlab либо одной строкой, либо методом копирования текста из описания лабораторного занятия.
Рис. 7. Ввод данных по созданию нейронной сети Джордана в командном окне Matlab
7. Для обучения полученных таким образом трех нейронных сетей Джордана при выполнении данного лабораторного занятия необходимо:
1) задать количество итераций (циклов работы нейронной сети до окончания процесса обучения сети),
464
Раздел V. Методы разработки технологических инноваций
2)осуществить вывод графиков обучения нейронной сети Джордана через указанное ниже количество циклов,
3)произвести непосредственно обучение нейронной сети. Для выполнения этих действий в качестве примера
рассмотрим количество циклов (итераций) равное 200, вывод графика обучения нейронной сети (рис. 8) через каждые 25 циклов (итераций), и обучение сети осуществим на основании выборки (массивы V1, V2, V3 на рис. 6) и данных свёртки массивов (N, A, B) на рис. 7.
Рис. 8. Процесс обучения нейронных сетей Джордана
Синтаксис данных действий в командном окне MATLAB выглядит следующим образом (рис. 8):
net1.trainParam.epochs = 200; net1.trainParam.show = 25; net1 = train(net1,V1,N); net2.trainParam.epochs = 200; net2.trainParam.show = 25; net2 = train(net2,V2,A);
465
Раздел V. Методы разработки технологических инноваций
net3.trainParam.epochs = 200; net3.trainParam.show = 25; net3 = train(net3,V3,B);
далее нажимаем на клавиатуре Enter.
Как видно из рис. 8 нейронная сеть успешно обучена за 8
циклов (8 Epochs).
8. Далее произведем моделирование результатов работы нейронной сети Джордана по каждому варианту перспективных технологических процессов (операций). Как известно из предыдущего лабораторного занятия для моделирования работы нейронной сети в системе Matlab используется команда «sim», поэтому введем далее в командное окно системы Matlab (рис. 9) следующие три строки, соответствующие трем созданным нейронным сетям Джордана, получившиеся в результате моделирования массивы назовем OUT1, OUT2, OUT3, OUT4 и OUT5:
OUT1 = sim(net1, [15.12 126.12 1521.18 1-0.15]); OUT2 = sim(net2, [8.01 164.903 3248.87 1-0.22]); OUT3 = sim(net3, [12.44 186.6 15487.71 1-0.18]);
и нажимаем на клавиатуре клавишу Enter, что позволяет получить записи, указанные на рис. 9.
Рис. 9. Процесс обучения нейронной сети Джордана для задачи оптимизации перспективных технологических процессов
466
Раздел V. Методы разработки технологических инноваций
Примечание: так как Ким максимизируемый критерий, то в строках он записывается в виде: 1– величина Ким (см. п. 5 методики выполнения лабораторного занятия).
9. Для вывода окончательного результата расчетов по выполнению линейной свёртки критериев оптимизации нейронной сетью Джордана необходимо найти по каждому из массивов, получившихся в процессе моделирования нейронных сетей Джордана – OUT1, OUT2, OUT3,– максимальные элементы, которые обозначим E1, E2, E3 соответственно. Для этого введем три строки, указанные на рис. 9, в командное окно
Matlab:
E1 = max(OUT1);
E2 = max(OUT2);
E3 = max(OUT3);
и нажимаем на клавиатуре клавишу Enter, что позволяет получить соответствующие записи (рис. 9).
10. Для определения итогового результата в рамках поставленной задачи оптимизации перспективных технологических процессов необходимо сформировать матрицу входных данных безразмерных величин (назовем ее Z) по трем вариантам выполнения операции перспективного технологического процесса. Для этого введем переменную K для нахождения минимального значения матрицы входных данных безразмерных величин из массива Z, а также массив результатов многокритериальной оптимизации перспективных технологических процессов G.
Для осуществления сказанного введем в командное окно Matlab (рис. 9) строки:
Z = [E1 E2 E3]; K = min(Z);
G = [K K K];
и нажимаем на клавиатуре клавишу Enter, что позволяет получить соответствующие записи (рис. 9).
11. Далее необходимо создать нейронную сеть Джордана (см. п. 6 методики выполнения) для формирования и вывода на экран монитора оптимального варианта выполнения перспективного
467
Раздел V. Методы разработки технологических инноваций
технологического процесса. Для этого вводим в рабочее окно Matlab (рис. 9) следующую строку:
net4 = newelm([0 1],[10 4 1],{'tansig','compet','purelin'},'trainbr','learnwh','msereg');
и нажимаем на клавиатуре клавишу Enter.
Примечание: названная команда для создания нейронной сети Джордана должна быть записана в командном окне Matlab либо одной строкой, либо методом копирования текста из описания лабораторного занятия.
12. Вначале для обучения созданной таким образом нейронной сети Джордана необходимо аналогично вышеприведенным примерам (п. 7 методики выполнения лабораторного занятия) задать количество итераций (циклов), вывод графиков обучения нейронной сети Джордана через определенное количество циклов, а также произвести непосредственно обучение сети.
По аналогии с вышесказанным примером:
−зададим количество циклов (итераций) – 200;
−вывод графика обучения нейронной сети через каждые 25 циклов работы сети и
−обучение сети на основании новой обучающей выборки (массив Z) и данных значения цели оптимизации (массив G).
Синтаксис данных действий в командном окне Matlab выглядит следующим образом (рис. 9):
net4.trainParam.epochs = 200; net4.trainParam.show = 25; net4 = train(net4,Z,G);
и нажимаем на клавиатуре клавишу Enter.
Как видно из рисунка 9 нейронная сеть успешно обучилась за 6 циклов (6 Epochs).
468
Раздел V. Методы разработки технологических инноваций
Рис. 9. Процесс обучения нейронной сети Джордана для задачи оптимизации перспективных технологических процессов
13. Далее рекомендуется произвести моделирование нейронной сети Джордана на основе новой обучающей выборки (массив безразмерных величин трех вариантов выполнения технологических процессов – Z). Как известно для моделирования работы нейронной сети в системе Matlab используется команда «sim». Введем в продолжении рис. 9 после значка «>>» в этих целях следующую строку в командное окно Matlab для получения массива (назовем его OUT4) (рис. 10):
OUT4 = sim(net4,Z);
и нажмем на клавиатуре клавишу Enter.
14. В заключении процедуры вывода результатов оптимизации введем переменную L, которая будет обозначать минимальный элемент массива OUT4, который смоделирован выше. Для этого введем в рабочее окно Matlab строку (рис. 10):
L = min(OUT4);
и нажимаем на клавиатуре клавишу Enter.
15. Для вывода результата вычислений на экран воспользуемся операторами «if… else », а также командой вывода результатов расчетов на дисплей компьютера «disp». Для этого вводим текст (рис. 10) после значка «>>» в рабочее окно системы Matlab:
469
Раздел V. Методы разработки технологических инноваций
if E1<=L;
disp('Вывод: оптимален 1-й вариант выполнения токарной операции') else E1>L;
disp('Вывод: 1-й вариант выполнения токарной операции не оптимален') if E2<=L;
disp('Вывод: оптимален 2-й вариант выполнения токарной операции') else E2>L;
disp('Вывод: 2-й вариант выполнения токарной операции не оптимален') if E3<=L;
disp('Вывод: оптимален 3-й вариант выполнения токарной операции') else E3>L;
disp('Вывод: 3-й вариант выполнения токарной операции не оптимален') end
end
end
и нажимаем на клавиатуре клавишу Enter.
Рис. 10. Вывод результата работы нейронной сети Джордана на дисплей компьютера
В данном случае оптимальным вариантом (рис. 10) программой определен перспективный технологический процесс с применением варианта токарной операции на универсальном токарно-винторезном станке «SAMAT-400 Вектор».
Оставшиеся фрагменты многовариантного сетевого графа (рис.4) в целях определения оптимального технологического процесса изготовления всего изделия (детали) выполняется
470
