Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Мо...
56 downloads
204 Views
2MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Московский государственный технологический университет «Станкин» Егорьевский технологический институт (филиал)
Махов А.А.
ОПТИМИЗАЦИЯ В МАШИНОСТРОЕНИИ
Методические рекомендации для самостоятельной работы студентов по дисциплине «АСТПП»
Егорьевск, 2008
Составитель
А.А. Махов, доцент кафедры ТАП
Методические рекомендации обсуждены и одобрены на заседании кафедры технологий автоматизированного производства (протокол № __ от _______ 2008 г.)
Заведующий кафедрой ТАП
________
Е.А. Копейкин
Методические рекомендации одобрены на заседании методического совета института (протокол № ______ от ___________ 2008 г.) Председатель совета ___________ А.Д. Семенов
Рассматриваются постановки и некоторые методы решения задач оптимизации, возникающих при технологическом проектировании процессов в машиностроении, связанных с металлообработкой. Рекомендации предназначены для студентов старших курсов, обучающихся по специальности «Автоматизация технологических процессов и производств (в машиностроении)», для выполнения практических и самостоятельных работ по дисциплине «АСТПП», а также специальной части дипломного проекта инженера.
2
Содержание ВВЕДЕНИЕ ……………………………………………………………
4
ГЛАВА 1 – Оптимизация режимов резания при металлообработке 1.1 Постановка задачи ……………………………………………… 1.2 Решение задачи графическим способом ……………………… 1.3 Решение задачи методом дискретного программирования ….. 1.4 Задания на самостоятельную работу ………………………….. 1.5 Рекомендуемая литература ……………………………………..
5 5 9 14 15 17
ГЛАВА 2 – Оптимизация траекторий вспомогательных перемещений инструмента ……………………………………………………… 2.1 Постановка задачи коммивояжера ……………………………. 2.2 Методы решения задачи коммивояжера ……………………… 2.3 Некоторые обобщения …………………………………………. 2.4 Задания на самостоятельную работу …………………………. 2.5 Рекомендуемая литература …………………………………….
18 18 19 26 28 29
ГЛАВА 3 – Оптимизация при планировании производства ………. 3.1 Постановка оптимизационных задач планирования производства, сводящихся к задаче линейного программирования ….. 3.2 Пример решения задачи оптимизации графическим методом 3.3 Пример решения задачи оптимизации с помощью программного комплекса MatLab ……………………………………………. 3.4 Задания на самостоятельную работу …………………………. 3.5 Рекомендуемая литература …………………………………….
30
ПРИЛОЖЕНИЯ ………………………………………………………. Приложение 1 – MatLab-программа графического решения задачи оптимизации режимов резания при точении ………………… Приложение 2 – MatLab-программа нахождения траектории вспомогательных перемещений при центровании ………………. Приложение 3 – MatLab-программа графического решения задачи оптимизации объемного планирования загрузки производственного участка ……………………………………………………..
40
3
30 34 36 38 39
41 44
47
ВВЕДЕНИЕ Современный уровень развития компьютерной техники и программного обеспечения позволяет автоматизировать процессы проектирования технологических процессов и ускорить решение сложных технических задач. Поэтому сейчас основной задачей при проектировании ставится не нахождение какого-либо решения технологической задачи, а поиск оптимального решения по заранее выбранному критерию. В условиях жесткой конкуренции современному предприятию необходимо постоянно сокращать издержки, возникающие на различных этапах производства. Данная задача решается путем оптимизации материальных и информационных потоков, размерных и временных связей. Часть таких задач решается техническим путем, за счет повышения степени автоматизации производства. Другие же задачи требуют более тонкой проработки при принятии решения. Так, например, использование современного режущего инструмента будет оправдано и принесет дополнительную прибыль, только если использовать оптимальные для условий обработки режимы резания. Сокращение машинного времени за счет снижения основного и вспомогательного времени уменьшает потребление дорогой электроэнергии, высвобождает ресурс работы оборудования. В настоящей работе уделяется внимание методам решения классических оптимизационных задач, возникающих при технологическом проектировании машиностроительного производства, связанного с обработкой деталей машин.
4
ГЛАВА 1 - Оптимизация режимов резания при механообработке 1.1 Постановка задачи Расчет режимов резания на основные переходы операций механической обработки является повседневной задачей технолога. Данному вопросу уделено большое внимание в литературе и к настоящему моменту теория резания изучена достаточно полно, что позволило разработать не только математические модели для расчета режимов резания, но и реализовать их в виде разнообразных компьютерных программ. Такие программы выполняются как в виде отдельных приложений, так и в виде модулей различных CAM и TDM систем. Результатами расчета с помощью таких программ являются приемлемые для конкретной обработки режимы резания. Тем не менее, часто такие программы не учитывают все особенности обработки, применяемого оборудования и инструмента. Поэтому найденные значения подачи s и скорости v могут быть не оптимальными по критерию производительности или себестоимости. Общепринятым критерием оптимизации режимов резания часто выступает производительность обработки – объем металла (припуска) снимаемого с заготовки в единицу времени. В виду того, что глубина резания на переход является назначенной величиной из технологических соображений, то оптимизация проводится только по двум переменным: подачи s и скорости v (или связанной с ней частоте вращения шпинделя n). Целевую функцию (ЦФ) оптимизации в таком случае можно записать в виде произведения, прямо пропорционального производительности обработки Q. Так, для большинства видов обработки (точения, сверления, фрезерования), можно записать: ЦФ: где
F = s v max, или F = s n max,
( 1.1 )
v – скорость резания, м/мин; n – частота вращения шпинделя, об/мин; s – подача (в зависимости от вида обработки может измеряться в мм/об, мм/мин, мм/зуб).
Как видно по виду формулы (1.1), чем больше значения подачи s и частоты n1, тем выше производительность обработки. Однако это вовсе не означает, что настроив станок на максимальную частоту вращения шпинделя nmax и подачу суппорта smax, можно получить оптимальную (максимальную) производительность. Это обусловлено различными ограничениями. Рассмотрим их.
1
Далее, для упрощения изложения материала будем рассматривать только модель F = s n max.
5
Кинематические ограничения Первые ограничения накладываются непосредственно на сами перемененные s, n, так как они не могут быть отрицательными числами (или быть ниже установленных уровней smin и nmin), а также их значения не могут превышать максимальных установленных для конкретной модели станка smax и nmax. Совокупность таких ограничений можно записать, например как: s 0; n 0; s smax ; n nmax .
smin s smax ; nmin n nmax .
или
( 1.2 )
Остальные ограничения связаны с особенностями применяемого оборудования, оснастки и вида обработки. Ограничение по мощности [3 – 5] Мощность привода главного движения чаще всего ограничивает режимы резания при выполнении черновых проходов, проводимых с большой глубиной резания t. Мощность резания, допустимая мощностью привода токарного станка ( 1.3 ) N рез N ст где Nст – мощность привода главного движения станка, кВт; – коэффициент полезного действия цепи главного движения. Мощность резания для различных видов обработки рассчитывается по разным формулам:
где
при точении:
N рез
при сверлении и фрезеровании:
N рез
9750
;
Pz – главная составляющая силы резания при точении, Н: Pz 10 CPz t x s y v n K Pz , Мкр – крутящий момент на шпинделе, Нм: М кр 10СМ D q s y K р при сверлении: Pz
Pz
Pz
при фрезеровании: где
Pz v ; 60 1000 М кр n
M кр
Pz D 2 1000
( 1.4 ) ( 1.5 ) ( 1.6 ) ( 1.7 ) ( 1.8 )
Pz – окружная составляющая силы резания при фрезеровании, Н: Pz
10C p t x s y B u z Dqnw
Kp,
( 1.9 )
Коэффициенты, стоящие в правой части в формулах (1.6) – (1.9) и в последующих, необходимы для конкретизации условий обработки и выбираются из справочников [3, 4]. Для формирования ограничения необходимо выполнить преобразование формулы (1.3) к виду f s, n ..... . 6
К примеру, для наружной токарной обработки заготовки ограничение по мощности примет вид: n
( nPz 1) yPz
s
6000N ст 1000 CPz t xPz K Pz D
nPz 1
( 1.10 )
Ограничения по стойкости режущего инструмента [3 – 5] Режущий инструмент является самым слабым звеном системы «станокприспособление-инструмент-деталь». Он в первую очередь подвергается действию сил резания, а также многим другим разрушающим факторам. Поэтому установка завышенных режимов резания чаше всего приводит к его быстрому изнашиванию или поломке. Для токарных резцов, оснащенных пластинками из твердого сплава, стойкость накладывает ограничение на величину скорости резания в виде соотношения: v
C Kv . T t s yv
( 1.11 )
v m xv
Переходя от скорости резания к частоте вращения шпинделя и выполнив необходимые преобразования, можно получить следующее ограничение: n s yv
1000 Cv Kv . T mt xv D
( 1.12 )
Существует большое количество и других ограничение. Приведем их без вывода уравнений. Ограничение по жесткости (виброустойчивости) технологической системы [3, 5] Недостаточная жесткость технологической системы может привести к вибрациям при резании, особенно при работе с большой подачей s или глубиной резания t. Ограничения на подачу s для токарной обработки можно записать следующим образом: наружное точение: растачивание:
C D zs s s xs c t
s
Dз max Dc
C S h zS l t оп h
PS
Ps
K S ;
KS .
( 1.13 ) ( 1.14 )
xS
где
Dc – наибольший диаметр обрабатываемой заготовки над станиной токарного станка, мм; Dз max – наибольший диаметр заготовки, мм; h – высота корпуса резца, мм; l оп – вылет резца (оправки), мм;
7
Ограничение по прочности и жесткости корпуса резца [3, 5] В дополнение к ограничению на стойкость инструмента для черновых переходов иногда необходимо учитывать ограничение по прочности и жесткости державки. Особенно данное ограничение актуально при больших вылетах резцов при глубоком растачивании и подобной обработке. Так, ограничения по прочности токарного резца с прямоугольным сечением bh можно записать следующим образом:
где
по прочности корпуса:
Pz
по жесткости корпуса:
Pz
и bh2 ; 6 lв
fEbh3 , 4lв
( 1.15 ) ( 1.16 )
f – максимально допустимая величина деформации вершины режущей части инструмента (прогиб) под действием главной составляющей силы резания, мм; Е – модуль упругости материала корпуса инструмента, МПа; lв – вылет резца, мм.
Ограничение по шероховатости обработанной поверхности заготовки [3, 5] Данное ограничение необходимо учитывать только при чистовой обработке. На шероховатость обработанной поверхности основное влияние оказывает геометрия режущей части инструмента и подача, т.к. именно они определяют форму следа инструмента оставляемого на поверхности. При наружном точении ограничения по шероховатости имеет вид: при Rz = 20...40: ( 1.17 ) s CS' v P r n Rz z K S 0 K S 1 K S 2 ; z ' P n при Rа = 1,25...2,5: ( 1.18 ) s CS v r Rа K S 0 K S 1 K S 2 . S
S
S
S
S
S
Ограничение по точности обработанной поверхности [3, 5] При чистовой обработке также необходимо анализировать ограничение по точности. При наружном точении ограничение по точности имеет вид: s
CS D z S KS 0 KS 1KS 2 KS 3 KS 4 . t xS
( 1.19 )
Ограничение по максимально допустимой осевой силе резания [3, 5] Для некоторых видов обработки (особенно для сверления) действующим является также ограничение по осевой силе резания, которая не должна превышать максимально допустимую прочностью станка или инструмента. Осевые силы резания определяются по формулам: Р0 10С P D q s y K p , для сверления: ( 1.20 ) x y n Px 10CPxt s v K Px . для точения: ( 1.21 ) Px
8
Px
Px
Ограничение по температуре резания [2] Данное ограничение связано с тем, что при высоких режимах обработки возникает значительная температура в зоне резания, которая может превышать термостойкость материала инструмента или заготовки Qдоп. При точении ограничение по термостойкости можно записать следующим образом: n zt s yt
1000zt Qдоп . z Ct t xt D t
( 1.22 )
В итоге задача оптимизации режимов резания сводится к нахождению пары значений s и n, при которых ЦФ F = sn имеет максимум, и выполняются все ограничения. В виду того, что сама ЦФ является нелинейной, а также нелинейны ограничения, данная задача классически должна решаться методами нелинейного программирования, которые достаточно сложны и трудоемки. Однако данную задачу можно решить и проще. Далее рассматриваются два способа, первый из которых аналитический, а второй – численный. 1.2 Решение задачи графическим способом Линейные оптимизационные задачи решать гораздо проще, нежели нелинейные. Поэтому одним из способов, применяемых при решении нелинейных задач, является сведение их к линейным – линеаризация. Рассмотрим решение задачи на примере чернового точения цилиндрической поверхности. Для данной задачи будут актуальны ограничения по жесткости технологической системы (1.13), мощности привода главного движения (1.10), стойкости инструмента (1.12), а также кинематические ограничения (1.2). В таблице 1.1 представлены все необходимые данные об обработке и значения коэффициентов, используемые в формулах ограничений. Проведем линеаризацию ЦФ и ограничений, т.е. приведем выражения к линейному виду. В данной задаче этого можно достичь, прологарифмировав ЦФ, а также правые и левые части соотношений для ограничений. При логарифмировании воспользуемся известными из курса алгебры правилами: lna b ln a ln b
( 1.23 )
ln a b b ln a
9
Таблица 1.1 – Сводные данные об условиях обработки Тип обработки черновое точение Требуемая шероховатость Rz80 Глубина резания t = 5 мм Диапазон частот вращения n = 25 .. 2000 об/мин, Диапазон подач s = 0,05 .. 2,8 мм/об Параметры Dc = 400 мм станка Макс. обработки над станиной Nст = 5,5 кВт SAMAT 400S Мощность главного привода КПД = 0,7 Параметры инструмента Параметры заготовки Тип заготовки Прокат с коркой ОбозначеРезец 2102-1225 Т5К10 ГОСТ 24996-81 ние Материал Сталь 45 нет Термообработка = 10, = 45, 1 = 45, HB 180 Геометрия Твердость = 0, r = 1,2 мм Предел прочности в = 530 МПа Длина L = 250 мм, Стойкость Т = 60 мин Геометрия Диаметр D = 120 мм В формуле (1.14) ограни- Cs = 0,164; zs = 0,4; Ps = 0,25; xs = 0,55; чения по жесткости Ks = 1,18 В формуле (1.12) ограни- Cv = 350; xv = 0,15; yv = 0,35; m = 0,2 Значения Kv = 0,74 коэффициентов чения по стойкости В формуле (1.10) ограни- СPz = 300; xPz = 1,0; yPz = 0,75; nPz = -0,15; чения по мощности KPz = 0,77 Параметры обработки
В результате получим:
F x1 , x2 x1 x2 max . x2 b1 ; x y x b v 2 2 1 n 1 x y Pz x2 b3 ; Pz 1 b x b ; 1 5 4 b6 x2 b7 .
где
( 1.24 )
( 1.25 )
x1 ln n ; x2 ln s ;
( 1.26 )
Ps C D zs D s c з max ; b1 ln K t xs Dc S 1000 C b2 ln m xv v K v ; T t D
( 1.27 ) ( 1.28 )
6000N ст 1000 nPz 1 ; b3 ln C Pz t xPz K Pz D b 4 ln nmin ; b 5 ln nmax ;
( 1.29 ) ( 1.30 ) ( 1.31 )
b6 ln smin ; b7 ln smax .
Подставив численные значения из таблицы 1.1 в формулы (1.25) – (1.31), получим линейную систему ограничений:
10
x2 0,432; x 0,35 x 3,753 2 1 0,85 x1 0,75 x2 3,829; 3,219 x 7 ,601; 1 2,996 x2 1,030.
( 1.32 )
Система (1.32) определяет область допустимых решений (ОДР) – область поиска оптимального решения. Для графического изображения области допустимых решений, необходимо рассмотреть каждое из неравенств системы (1.32). При этом неравенство следует преобразовать в тождество и построить в плоскости x1x2 соответствующие прямые.
а)
б)
Рис. 1.1 – Нахождение области допустимых решений графическим способом а) только кинематические ограничения 3,219 x1 7,601; 2,996 x2 1,030 ; б) все ограничения (1.35) 11
Так, например, два последних неравенства преобразуются в четыре тождества: x1 = 3,219; x2 = 7,601; x2 = –2,996; x2 = 1,030. ( 1.33 ) Построив четыре прямые по уравнениям (1.33) выясним область допустимых решений по этим ограничениям – см. рис. 1.1,а. Аналогично, графически строятся прямые и по остальным ограничениям системы (1.32) – см. рис. 1.1,б. Так для построения второго ограничения, неравенство необходимо преобразовать, например, к виду x2
3,753 x1 , 0,35
( 1.34 )
и далее к тождеству x2
3,753 x1 , 0,35
( 1.35 )
по которому можно построить график x2(x1). Существует теорема, согласно которой оптимальное решение если оно и существует, то находится в точке пересечения ограничений области допустимых решений. Это означает что, координаты (x1i, x2i) одной из вершин закрашенного пятиугольника ABCDE – области допустимых решений, дадут максимум ЦФ F x1 , x2 x1 x2 max . Таким образом, для нахождения оптимального решения необходимо найти 5 пар координат (x1i, x2i) точек А, B, C, D и E, и подставить их в уравнение для ЦФ. Та пара, которая даст максимум целевой функции – и есть оптимальное решение. В нашем случае, значения целевой функции F x1 , x2 x1 x2 для каждой из точки – вершины прямоугольника окажутся следующими: Координаты
Точка
х1 3,219 3,219 4,881 6,111 6,521
А В С D E
х2 –2,996 –0,432 –0,432 –1,826 -2,996
Значение целевой функции F x1 , x2 x1 x2 0,223 2,787 4,449 4,285 3,525
Как видно, ЦФ имеет максимум в точке С (x1 = 4,881; x2 = –0,432). Выполнив операцию, обратную логарифмированию, получим оптимальные значения частоты вращения шпинделя n и подачи s, и далее скорости резания v: ( 1.36 ) n e x e4,881 132об / мин ; x 0 , 432 se e 0,65 мм/об ; ( 1.37 ) 1
2
v
Dn 1000
120 132 1000
49,8 м/мин.
12
( 1.38 )
Значение исходной целевой функции при таких параметрах n, s составит: F = s n = 132 0,65 = 85,8 мм/мин.
( 1.39 )
Тем не менее, настроить станок на обработку детали с найденными режимами резания будет возможно, только если станок оснащен частотнорегулируемыми приводами главного движения и подачи. Большинство же универсальных станков имеют коробку скоростей, поэтому найденные значения частоты n, и подачи s, необходимо откорректировать под паспортные значения. Однако это может привести к тому, что фактические режимы резания окажутся неоптимальными. Так, если принять для станка nфакт = 125 об/мин, sфакт = 0,6 мм/об, то скорость резания vфакт = 47,12 м/мин, а ЦФ: F = 75 мм/мин. Как видно, при наличии дискретного ряда частот n и подач s, откорректированные режимы резания оказываются неоптимальными. При наличии большого числа ограничений область допустимых решений может иметь множество вершин, поэтому поиск оптимального решения целесообразно проводить с помощью т.н. градиентного метода [1]. Вектор градиента G показывает направление роста целевой функции. Для нахождения этого вектора необходимо в начале задаться двумя какими-либо значениями целевой функции. Положим, F x1 , x2 x1 x2 2 и F x1 , x2 x1 x2 3 , и в графической области построим соответствующие прямые (см. рис. 1.2).
Рис. 1.2 – Нахождение оптимального решения (x1, x2) градиентным методом 13
Как видно, чем больше выбранное значение ЦФ, тем выше находится прямая F x1 , x2 , значит, вектор градиента G направлен вправо вверх перпендикулярно любой из прямых F x1 , x2 . Таким образом, чтобы найти точку максимума ЦФ в области допустимых решений, необходимо одну из построенных прямых F x1 , x2 перенести параллельно в сторону, указываемую вектором градиента G , то тех пор, пока она не будет иметь с область допустимых решений всего одну точку. Как видно из рис. 1.2 целевая функция F x1 , x2 x1 x2 имеет максимум в точке C (x1 = 4,881; x2 = –0,432), как и было определено ранее. 1.3 Решение задачи методом дискретного программирования Для станков, имеющих коробки скоростей и подач, т.е. имеющих дискретный ряд значений частот вращения и подач, целесообразно применять т.н. метод дискретного программирования [5]. Рассмотрим алгоритм данного метода при условиях предыдущего примера – см. табл. 1.1. Согласно паспортных данных станка SAMAT 400S частоты n и подачи могут s могут иметь следующие дискретные значения: [n] = [25; 31,5; 40; 50; 63; 80; 100; 125; 160; 200; 250; 315; 400; 500; 630; 800; 1000; 1250; 1600; 2000] об/мин; [s] = [0,05; 0,06; 0,07; 0,08; 0,1; 0,12; 0,15; 0,17; 0,2; 0,25; 0,3; 0,35; 0,4; 0,5; 0,6; 0,7; 0,8; 1,0; 1,2; 1,4; 1,6; 2,0; 2,4; 2,8] мм/об.
Суть метода дискретного моделирования заключается в переборе всех возможных комбинаций пар (ni, si) из массивов [n] и [s]. Оптимальным признается такая пара (ni, si), которая удовлетворяет всем ограничениям и дает максимальное значение целевой функции F = ns = max. В виду того, что для решения данной задачи таким методом необходимо перебрать 480 комбинаций, то для этого целесообразно применять компьютер. При компьютерном решении задачи вначале формируется матрица [F] значений ЦФ, состоящая из элементов Fij = ni sj. Далее, каждая пара значений (ni, sj) подставляется в каждую из формул действующих ограничений и при невыполнении какого-либо условия соответствующий элемент матрицы Fij(ni, sj) обнуляется. После проверки всех пар (ni, sj) по всем ограничениям, в матрице [F] останутся ненулевыми только те значения, которые удовлетворяют всем ограничениям, а ее максимальный элемент Fij = max будет соответствовать оптимальным режимам резания (nопт, sопт) – см. рис. 1.3. Как видно из рис. 1.3, найденные оптимальные режимы резания nопт и sопт оказались отличными от предыдущих, тем не менее, различие в значениях целевой функции оказалось в пределах 7%. 14
Применение компьютера для итеративного поиска оптимальных значений n и s является традиционным средством решения задач. Причем если повысить степень дискретизации (уменьшить шаг дискретности) в массивах [n] и [s], то можно находить оптимальные решения с заданной точностью и при использовании станков с частотно регулируемыми приводами. Данный метод прост, не требует дополнительных процедур для линеаризации, и, в отличие от предыдущего метода, способен находить оптимальные режимы резания и при переменных коэффициентах в формулах ограничений.
Рис 1.3 – Цветовая визуализация матрицы F = ns после наложения ограничений (получено с помощью компьютерной программы [5]) 15
1.4 Задания на самостоятельную работу Для закрепления материала теоретической части и получения практических навыков решения задачи поиска оптимальных режимов резания, самостоятельно решите задачу оптимизацию при условиях представленных в табл. 1.2 – 1.3. Для выполнения заданий можно использовать программу представленную в приложении 1 настоящего пособия или в описанную в работе [5]. Таблица 1.2 – Задание на самостоятельную работу (черновая обработка) Параметры обработки
Тип обработки Требуемая шероховатость Глубина резания
Параметры станка МК6056
Диапазон частот вращения Диапазон подач Макс. диаметр обработки над станиной Мощность главного привода КПД
Обозначение
черновое точение Rz20 t = 4 мм
Параметры инструмента Резец 2102-1225 Т5К10 ГОСТ 24996-81
Геометрия
= 10, = 45, 1 = 45, = 0, r = 1,2 мм
Стойкость
Т = 30 мин
Державка
Высота корпуса h = 25 мм Ширина корпуса b = 20 мм
n = 16 .. 2000 об/мин, s = 0,05 .. 2,8 мм/об Dc = 500 мм Nст = 7,5 кВт = 0,75
Параметры заготовки Тип заготовки Отливка Материал Сталь 40Х Нормализация Термообработка HB 180 Твердость Прочность в = 610 МПа Геометрия
Длина L = 300 мм, Диаметр D = 200 мм
В формуле (1.14) ограниче- Cs = 0,164; zs = 0,4; Ps = 0,25; xs = 0,55; ния по жесткости Ks = 1,23 Значения коэффициентов
В формуле (1.12) ограниче- Cv = 350; xv = 0,15; yv = 0,35; m = 0,2 ния по стойкости Kv = 0,74 В формуле (1.10) ограниче- СPz = 300; xPz = 1,0; yPz = 0,75; nPz = -0,15; ния по мощности KPz = 0,77
16
Таблица 1.3 – Задание на самостоятельную работу (чистовая обработка) Параметры обработки
Параметры станка МК6756
Тип обработки Диаметр растачиваемого отверстия Длина растачиваемого отверстия Требуемая шероховатость Глубина резания Диапазон частот вращения Диапазон подач Макс. диаметр обработки над станиной Мощность главного привода КПД Максимальная осевая сила
Параметры инструмента ОбозначеРезец 2140-0636 ВК4 ние ГОСТ 26612-85 Геометрия Стойкость
чистовое растачивание 70Н9 l = 100 мм Ra2,5 t = 0,5 мм n = 20 .. 2500 об/мин, s = 0,01 .. 3,0 мм/об Dc = 430 мм Nст = 13,2 кВт = 0,7 Px max = 6000Н
Параметры заготовки Материал СЧ 20 ГОСТ 1412-85 HB 190 Твердость Прочность в = 200 МПа
= -7, = 95, 1 = 5, = 10, r = 0,8 мм
Геометрия
Т = 60 мин
Длина Lзаг = 100 мм, Диаметр Dmax = 150 мм Диаметр отв. Dотв = 69 мм
В формуле (1.14) ограничения Cs = 0,5574; zs = 0,4; Ps = 0,5; xs = 0,4; по жесткости Ks = 0,9 Значения коэффициентов
В формуле (1.12) ограничения Cv = 292; xv = 0,15; yv = 0,20; m = 0,2 по стойкости Kv = 1,1 В формуле (1.18) ограничения Сs 0,142 ; Ps = 0; ns = 0,35; zs = 0,6; по шероховатости Ks0 = 1,0; Ks1 = 0,8; Ks2 = 1,0 В формуле (1.19) ограничения Cs = 0,6; xs = 0,142; zs = 0; Ks0 = 0,8; по точности Ks1 = 1,0; Ks2 = 0,9; Ks3 = 1,0; Ks4 = 1,0
1.5 Рекомендуемая литература 1. Гловацкая А.П. Методы и алгоритмы вычислительной математики: Учеб. пособие для вузов. – М.: Радио и связь, 1999. – 408 с.: ил. 2. Макаров А.Д. Оптимизация процессов резания. – М.: Машиностроение, 1976. – 278 с. (Библиотека технолога) 3. Нефедов Н.А., Осипов К.А. Сборник задач и примеров по резанию металлов и режущему инструменту: Учеб. пособие для техникумов... – 5-е изд., перераб. и доп. – М.: Машиностроение, 1990. – 448 с. 4. Справочник технолога-машиностроителя. В 2-х т. Т. 2/ Под ред. А.Г. Косиловой и Р.К. Мещерякова. – 4-е изд., перераб. и доп. – М.: Машиностроение, 1985. – 496 с. 5. Оптимизация режима резания при точении с помощью дискретного моделирования. Метод. рук-во/ Сост. Е.А.Копейкин. – Егорьевск: ЕТИ ГОУ МГТУ «СТАНКИН», 2005. – 44 с.
17
ГЛАВА 2 – Оптимизация траекторий вспомогательных перемещений инструмента 2.1 Постановка задачи коммивояжера Машино-вспомогательное время tм.в. занимает большую долю от оперативного времени затрачиваемого на выполнение технологической операции. Поэтому при комплексной оптимизации производственного процесса сокращение вспомогательного времени на холостые перемещения инструмента и смену инструмента часто дают больший эффект, чем повышение режимов резания. Задача нахождения оптимальной траектории движения (маршрута) является одной из знаменитых задач теории комбинаторики и имеет давнюю историю. Она была известна в XIX веке и оттуда получила свое название – задача коммивояжера. В классической постановке она звучала так: «Коммивояжер (бродячий торговец) должен выйти из первого города, посетить по разу в неизвестном порядке города 2,1,3 .. n и вернуться в первый город. Расстояния между городами известны. В каком порядке следует обходить города, чтобы замкнутый путь коммивояжера был кратчайшим?»
В науке и технике существует большой класс задач, которых можно свести к задаче коммивояжера. В металлообработке задача поиска оптимального маршрута возникает, например, проектировании многоцелевой операции с ЧПУ, когда необходимо проводить центрование, сверление и пр. большого числа отверстий в заготовке. Приведем задачу коммивояжера к математическому виду. Для этого введем некоторые обозначения. Итак, имеется n точек, которые пронумерованы j T (1, 2, 3,..., n) . Обозначим расстояния между парой точек i, j через Cij. Маршрут можно описать последовательностью точек t j1 , j2 ,..., jn , j1 , причем все j1 .. jn – разные номера, а повторяющийся в начале и в конце номер точки j1 показывает, что последовательность замкнута. Таким образом, задача оптимизации заключается в нахождении такой последовательности t j1 , j2 ,..., jn , j1 , чтобы суммарная длина всех отрезков между точками оказалась бы минимальной, т.е. n
L Lt C jk jk 1 min .
( 2.1 )
k 1
Совокупность расстояний Cij образуют симметричную матрицу [C]. Каждый элемент Cij матрицы [C] должен удовлетворять следующим ограничениям: ( 2.2 ) Cij 0 ; Cii ; Cij C jk Cik . 18
Кажущаяся простота задачи, на первый взгляд, заключающаяся лишь в переборе всех возможных вариантов маршрутов, на практике представляет существенную трудность, так как число комбинаций N возрастает в зависимости от числа точек в следующей зависимости: N
n 1! .
( 2.3 )
2
Что означает для n = 10; N = 181440; n = 15; N = 4,36 1010; n = 20; N = 6,08 1016. Как видно, применение даже современного мощного компьютера для такой «простой» задачи уже при n = 15 практически невозможно. Существует множество приближенных методов решения задачи коммивояжера. Рассмотрим их. 2.2 Методы решения задачи коммивояжера Для того чтобы найти «хороший» (не обязательно оптимальный) маршрут задачу коммивояжера следует решать в два этапа. На первом этапе обычно находят некий базовый маршрут, а на втором этапе – его улучшают. Рассмотрение методов решения задачи коммивояжера проведем на следующем примере.
Рис. 2.1 – Эскиз детали На вертикальном фрезерно-сверлильно-расточном станке производится комплексная обработка детали, показанной на рис. 2.1. На операции в заготовке необходимо обработать 14 различных крепежных отверстий. Первоначально все отверстия центруются. Требуется определить оптимальную по19
следовательность зацентровки этих отверстий по критерию минимума вспомогательных перемещений. Полагается, что первоначально шпиндель находится в точке смены инструмента (т. 15), и после зацентровки 14-ти отверстий на глубину h = 4 мм должен вернуться обратно в исходное положение (т. 15). В отличие от классической задачи коммивояжера, здесь явно не задана матрица расстояний [C], а лишь даны некоторые значения межцентровых расстояний в горизонтальном и вертикальном направлениях. Для расчета матрицы [C] необходимо пронумеровать отверстия и изменить простановку размеров – «привязать» их к одной базе – нулю детали 0дет (см. рис. 2.2). По полученным координатам (xi, yi) легко определить значения элементов Cij, используя теорему Пифагора: 2 2 Cij xi x j yi y j . ( 2.4 )
Рис. 2.2 – Эскиз детали в преобразованной системе координат и матрица расстояний
20
Если задача коммивояжера решается для деталей (см. рис. 2.3), отверстия в которых заданы не в прямоугольных (xi, yi), а в полярных координатах (ri, i) или (di, i), то для расстояния Cij можно определять по теореме косинусов: Cij ri 2 rj2 2ri rj cosi j
2 di2 d j di d j cosi j . 4 4 2
( 2.5 )
Рис. 2.3 – Эскизы деталей с отверстиями, заданными в полярных координатах «Жадный» алгоритм Жадный алгоритм – алгоритм нахождения наикратчайшего расстояния путѐм выбора самого короткого, ещѐ не выбранного ребра, при условии, что оно не образует цикла с уже выбранными рѐбрами. «Жадным» этот алгоритм назван потому, что на последних шагах приходится жестоко расплачиваться за жадность. Особенно ярко недостаток метода можно проиллюстрировать на примере, показанном на рис. 2.4. Здесь точки находятся в вершинах ромба. Выберем в качестве отправной точки – 1. Ближе всего к точке 1 лежат две точки 2 и 4, поэтому можно выбрать любую из них, например, 2. Ближе к точке 2 находится точка 4, а последней в маршрут следует включить точку 3. Однако после этого, возвращаться в исходную точку 1, придется по самой длинной диагонали. В результате полученный маршрут t = (1,2,4,3,1) окажется неоптимальным.
21
Рис. 2.4 – Пример решения задачи коммивояжера а) исходная схема; б) матрица расстояний; в) маршрут, найденный по «жадному» алгоритму; в) оптимальный маршрут;
Если вернуться к задаче о нахождении последовательности центрования 14-ти отверстий (рис. 2.1) то «жадный» алгоритм даст маршрут (см. рис. 2.5): t = (15,13,14,10,8,5,4,3 2,6,7,9,11,12,1,15),
длина которого равна: L = 710,87 мм. Не трудно заметить, что найденный маршрут t не оптимален и может быть улучшен. «Жадный» алгоритм прост, легко ложится на язык программирования, однако «ошибается» при поиске кратчайшего пути, причем ошибка может быть произвольно высока. Тем не менее, он является основным способом получения базового маршрута для последующего улучшения. 22
Рис. 2.5 – Результат, полученный по «жадному» алгоритму
«Деревянный» алгоритм Поиск маршрута по «деревянному» алгоритму выполняется в три этапа: 1. В начале строится т.н. кратчайшее остовное дерево с удвоенными связями между вершинами и с корнем в исходной (начальной) точке. Оно представляет граф связей с минимальными расстояниями между точками. Для рассматриваемой задачи, остовное дерево показано на рис. 2.6,а.
Рис. 2.6 – Иллюстрация этапов «деревянного» алгоритма а) минимальное остовное дерево с корнем в точке 15; б) эйлеров цикл; в) маршрут, полученный из эйлерова цикла удалением повторяющихся точек
2. Далее, используя только ветви построенного дерева, строят т.н. эйлеров цикл – замкнутую линию через все вершины. Эйлеров цикл для рассматриваемой задаче показан на рис. 2.6,б. Его можно записать как: ЭЦ = (15,13,12,11,9,7,6,1,6,7,9,11,12,13,14,10,8,5,4,3,2,3,4,5,8,10,14,13,15).
3. Для получения маршрута из эйлерова цикла исключаются все повторяющиеся вершины, кроме исходной, т.е.
В результате получим маршрут, показанный на рис. 2.6,в: t = (15, 13, 12, 11, 9, 7, 6, 1, 14, 10, 8, 5, 4, 3, 2, 15).
Длина маршрута оказалась равна L = 744,42 мм.
23
Как видно маршрут опять не оптимален. «Деревянный» алгоритм также «ошибается». Однако в отличие от «жадного» алгоритма, длину маршрута L, находимого с помощью «деревянного» алгоритма можно оценить по отношению к длине оптимального маршрута Lmin, с помощью соотношения: Lmin L 2Lmin. Случайные методы Идея состоит в том, что маршрут выбирается случайно, т.е. маршрут представляет собой случайную перестановку номеров точек. Разумеется, гарантия того, что выбранный маршрут окажется оптимальным, ничтожно мала, однако, последующая процедура улучшения маршрута, поможет существенно уменьшить его длину. В подходе, известным под названием метод Монте-Карло, случайный маршрут выбирается многократно. Так для рассматриваемой задачи общее число возможных маршрутов по формуле (2.3) будет около 44 миллиардов, и их полный перебор на персональном компьютере просто невозможен. Однако если провести статистический эксперимент случайной перестановки точек, скажем миллион раз (что приемлемо для современных компьютеров), то среди миллиона комбинаций маршрута, можно выбрать тот, который оказался лучше всех. И хотя вероятность получения оптимального маршрута также невысока (примерно, 0,003%), на практике получаемый результат оказывается «неплохим» (см. рис. 2.7): Рис. 2.7 – Пример лучшего маршрута, найденного методом Монте-Карло при t = (15,12,13,10,14,5,4,2,3,8,6,1,7,11,9,15), переборе 1 млн. случайных комбинаL = 729 мм. ций Существую и другие методы поиска маршрутов – методы «ветвей и границ», алгоритм Литта, алгоритм Дейкстры и пр.
24
Методы улучшения базового маршрута Метод перестановок Суть метода перестановок заключается в том, что после нахождения базового маршрута, делаются попытки попарно менять местами соседние точки, и если наблюдается улучшение, то такой измененный маршрут становится базовым. Процесс повторяют до тех пор, пока данный метод не перестанет давать улучшение. Для иллюстрации рассмотрим улучшение варианта базового маршрута, полученного методом Монте-Карло (см. рис. 2.7). Так, если в этом маршруте t поменять местами точки 10 и 14 получим: t = (15,12,13,14,10,5,4,2,3,8,6,1,7,11,9,15),
L = 709,76 мм. Если после этого еще поменять местами точки 11 и 9, то получим, маршрут, показанный на рис. 2.8: t = (15,12,13,14,10,5,4,2,3,8,6,1,7,9,11,15),
L = 639,05 мм. Данный способ можно проРис. 2.8 – Пример улучшения мардолжить, выполняя перестановки не только соседних точек, а например, шрута (см. рис. 2.6) перестановкой 10 и 14 точек, а также 9 и 11 точек через одну, две и т.д. Метод перестановок очень эффективен и легко ложится на язык программирования. Метод разворота петель Если в найденном маршруте наблюдаются пересечения, то это свидетельствует о том, что он не оптимален. Поэтому эффективным способом улучшения маршрута является такие перестановки точек в последовательности базового варианта, чтобы маршрут не пересекался. Разворачивая петлю в маршруте на рис. 2.8, можно получим траекторию, показанную на рис. 2.9: t = (15,12,13,14,10,8,4,3,2,5,6,1,7,9,11,15),
L = 580,75 мм. 25
Рис. 2.9 – Результат устранения пересечения в маршруте, показанном на рис. 2.7
Рис. 2.10 – Оптимальный маршрут (оптимальная траектория вспомогательных перемещений при центровании)
Комбинированный метод Рассмотренные методы улучшения целесообразно применять вместе, в результате их эффективность существенно увеличивается. На рис. 2.10 показан маршрут, который, по-видимому, является оптимальным. Он был получен после выполнения перестановок в маршруте, показанном на рис. 2.9. t = (15,13,14,10,8,5,4,3,2,6,1,7,9,11,12,15),
L = 557,75 мм. 2.3 Некоторые обобщения Для иллюстрации необходимости решения задачи коммивояжера осуществим проектирование обработки рассматриваемой детали в одной из популярных CAM-систем – EdgeCAM 10.5. Для разработки управляющей программы обработки крепежных отверстий в EdgeCAM достаточно указать лишь координаты отверстий и далее в диалоговом режиме задать их геометрию, стратегию обработки, применяемый инструмент и режимы резания. Это приводит к результату, в котором в начале обрабатываются отверстия одного типа (например, резьбовые М10), при этом выполняются все переходы, связанные с обработкой – центрование, сверление, нарезание резьбы, потом обрабатываются отверстия другого типа, 26
(например, гладкие 5,8) и т.д. При наличии большого числа отверстий различных типов это приводит к нерационально большому числу смен инструментов, поэтому в программе заложен алгоритм рационализации – оптимизации по числу смен инструментов, при котором однотипные переходы, выполняемые одинаковым инструментом, объединяются (как например, центрование для всех крепежных отверстий). Это существенно снижает вспомогательное время. Тем не менее, траектория инструмента при центровании все равно оказывается привязанной к типам отверстий, и поэтому далека от оптимальной. На рис. 2.11 показана траектория инструмента при центровании 14-ти крепежных отверстий полученная после оптимизации числа смен инструментов: t = (15,7,9,6,5,4,8,14,13,12,2,11,1,3,10,15),
L = 1107,1 мм.
Рис. 2.11 – Траектория инструмента при центровании 14-ти крепежных отверстий полученная с помощью программы EdgeCAM 10.5 Подводя итог, можно утверждать, что оптимизация вспомогательных перемещений позволяет существенно сократить общее машинное время операции. Полученные результаты (см. рис. 2.12), можно признать типичными для такого класса задач. Если сравнить решение, предложенное CAMсистемой с оптимальным маршрутом, то получится, что оно хуже почти в 2 раза. Это означает, на ускоренные перемещения с подачей sуск = 2500 мм/мин затраты времени составят около 15 сек, что даже больше основного времени tо, необходимого для центрования всех 14-ти отверстий. 27
Рис. 2.12 – Диаграмма результатов решения задачи поиска траектории движения инструмента при центровании 14-ти крепежных отверстий в детали типа плита, полученных с помощью различных методов 2.4 Задания на самостоятельную работу Попробуйте найти оптимальные траектории движения инструмента при центровании крепежных отверстий в деталях, показанных на рис. 2.3, 2.13. Для выполнения задания можно воспользоваться компьютерной программой приведенной в приложении 2 настоящего пособия.
Рис. 2.13 – Эскизы деталей для самостоятельного решения задачи коммивояжера
28
2.5 Рекомендуемая литература 1. Гловацкая А.П. Методы и алгоритмы вычислительной математики: Учеб. пособие для вузов. – М.: Радио и связь, 1999. – 408 с.: ил. 2. Маркова Е.В., Лисенков А.Н. Комбинаторные планы в задачах многофакторного эксперимента. – М., Наука, 1979, 345 с.
29
ГЛАВА 3 – Оптимизация при планировании производства 3.1 Постановка оптимизационных задач планирования производства, сводящихся к задаче линейного программирования Огромное число оптимизационных задач планирования сводятся к т.н. задаче линейного программирования, графический градиентный метод решения которой был вкратце описан в разделе 1.2. Задача линейного программирования ставится следующим образом. Требуется найти оптимальные значения n переменных x1, x2, …, xn, доставляющие экстремум линейной целевой функции: n
F c1 x1 c2 x2 ... cn xn c j x j ,
( 3.1 )
j 1
при конечном числе линейных ограничений вида: a p1 x1 a p 2 x2 ... a pn xn bp , p 1, k ; as1 x1 as 2 x2 ... asn xn bs , s 1, k ; am1 x1 am 2 x2 ... amn xn bm , m 1, k ;
( 3.2 ) ( 3.3 ) ( 3.4 )
Очевидно, что рассмотренный в разделе 1.2 графический метод решения задачи возможен только при оптимизации функций двух переменных x1, x2 . Рассмотрим постановки нескольких типовых оптимизационных задач. Объемное планирование работы механического участка для достижения максимальной загрузки технологического оборудования [3] Имеется m-станков (или m-групп станков), на которых могут быть изготовлены n-типов деталей. Трудоемкость обработки j-ой детали на i-ом станке составляет tij, час (см. табл. 3.1), известны также фонды времени работы каждого станка (группы станков) – Bi. Таблица 3.1 – Исходные данные к задаче Трудоемкость при обработке деталей каждого типа Станки 1 2 … n
Фонд времени работы оборудования, час
1
t11
t12
…
t1n
B1
2
t21
t22
…
t2n
B2
…
…
…
…
…
…
m
tm1
tm2
…
tmn
Bm
Требуется определить количество деталей каждого наименования (x1, x2, …, xn), при обработке которых достигается максимальная загрузка оборудования участка. 30
Математически задача сводится к максимизации следующей ЦФ: m
n
F tij x j max ,
( 3.5 )
i 1 j 1
при ограничениях: t11 x1 t12 x2 ... t1n xn B1 ; t x t x ... t x B ; 21 1 22 2 2n n 2 ... ... ... ... ... ... t m1 x1 t m 2 x2 ... t mn xn Bm . x1 0; x 0; 2 ... ... xn 0.
( 3.6 )
( 3.7 )
Планирование работы механического участка для достижения максимальной прибыли Для изготовления n видов изделий завод использует m видов сырья, запас каждого из которых ограничен Ri. Для изготовления изделий задействованы s видов оборудования, для которых ограничен фонд рабочего времени Bk. Также известна прибыль от реализации каждого изделия Mj. Исходные данные сведены в табл. 3.2. Таблица 3.2 – Исходные данные к задаче Потребность в сырье для изделий, кг Виды сырья 1 2 … n
Ресурсы, кг
1
p11
p12
…
p1n
R1
2
p21
p22
…
p2n
R2
…
…
…
…
…
…
m
pm1
pm2
…
pmn
Rm
Время изготовления изделий, час 1
2
…
n
Фонд времени работы оборудования, час
1
t11
t12
…
t1n
B1
2
t21
t22
…
t2n
B2
…
…
…
…
…
…
s Прибыль на одно изделие, усл. руб.
ts1
ts2
…
tsn
Bs
М1
М2
…
Мn
Оборудование
Требуется определить план выпуска продукции, при котором будет достигнута максимальная прибыль.
31
Если обозначить через xj – число изделий каждого из n видов выпускаемых изделий то, математически задача сведется к максимизации ЦФ: n
F M 1 x1 M 2 x2 ... M n xn M j x j max ,
( 3.8 )
j 1
при ограничениях: p11 x1 p12 x2 ... p1n xn R1 ; p x p x ... p x R ; 21 1 22 2 2n n 2 ... ... ... ... ... ... pm1 x1 pm 2 x2 ... pmn xn Rm . t11 x1 t12 x2 ... t1n xn B1 ; t x t x ... t x B ; 21 1 22 2 2n n 2 ... ... ... ... ... ... t s 1 x1 t s 2 x2 ... t sn xn Bs . x1 0; x 0; 2 ... ... xn 0.
( 3.9 )
( 3.10 )
( 3.11 )
Иногда, в таких задачах вводят дополнительные жесткие условия. Например, требуется, чтобы полностью был выработан фонд времени работы Bk одного вида оборудования. В этом случае, одно из ограничений (3.10) записывается в строгой форме: t k1 x1 tk 2 x2 ...t kn xn Bk . ( 3.12 ) Задача о минимальной загрузке оборудования [3] Имеется m станков, на которых могут быть обработаны n типов деталей. Производительность i-го станка при изготовлении j-ой детали составляет Cij. Величины плановых заданий Aj на изготовление j-ой детали и ресурс времени работы Bi известны. Все исходные данные можно представить в виде табл. 3.3 Таблица 3.3 – Исходные данные к задаче Производительность обработки детали каждого типа Станки 1 2 … n
Фонд времени работы оборудования, час
1
c11
c12
…
c1n
B1
2
c21
c22
…
c2n
B2
…
…
…
…
…
…
m Требуемое количество деталей
cm1
cm2
…
cmn
Bm
A1
A2
…
An
32
Требуется, учитывая ресурсы времени работы каждого станка, распределить задания между станками таким образом, чтобы общее время работы всех станков было минимальным. Если обозначить tij – время изготовления j-ой детали на i-ом станке, то математически можно записать задачу минимизации ЦФ: m
n
F tij min ,
( 3.13 )
i 1 j 1
при ограничениях: n
t j 1
ij
Bi , i 1, m ;
m
c t i 1
ij ij
Aj i ,
( 3.14 )
j 1, n ;
( 3.15 )
tij 0 .
( 3.16 )
Задача об оптимальном раскрое листового материала [3] На заготовительный участок поступило некоторое количество листового материала, из которых необходимо получить (вырезать) заготовки n типов, причем число заготовок j-типа должно оказаться не меньшим Nj. Кроить листовой материал можно m способами, при каждом из которых получаются zi1 заготовок 1-го типа, zi1 – заготовок 2-типа и т.д. Исходные данные сведены в табл. 3.4. Таблица 3.4 – Исходные данные к задаче Число заготовок j-го типа, получаемых при Способы раскрое i-м методом раскроя 1 2 … j … n 1
z11
z12
...
z1j
…
z1n
2
z21
z22
…
z2j
…
z2n
…
…
…
…
…
…
…
i
zi1
zi2
…
zij
…
zin
…
…
…
…
…
…
…
m Требуемое количество заготовок
zm1
zm2
…
zmj
…
zmn
N1
N2
…
Nj
…
Nn
Если обозначить xi – число листов раскраиваемых i-м способом, то математически можно записать задачу минимизации ЦФ: m
F xi min ,
( 3.17 )
i 1
при ограничениях:
33
z11 x1 z 21 x2 ... z m1 xm N 1 ; z x z x ... z x N ; 12 1 22 2 m2 m 2 ... ... ... ... ... ... ... z1n x1 z 2 n x2 ... z mn xm N n . x1 0; x 0; 2 ... ... xm 0.
( 3.18 )
( 3.19 )
3.2 Пример решения задачи оптимизации графическим методом Рассмотрим пример решения конкретной задачи. В цехе механической обработки имеется три группы оборудования: токарные, фрезерные и сверлильные, задействованные в серийном производстве двух видов изделий. Исходные данные о трудоемкостях обработки и фондах времени работы оборудования приведены в табл. 3.5. Таблица 3.5 – Исходные данные к задаче Трудоемкость при обработке изделий, час Оборудование Изделие 1 Изделие 2
Фонд времени работы оборудования, час
Токарные станки
0,1
0,3
200
Фрезерные станки
0,5
0,9
700
Сверлильные станки
0,3
0,2
330
Требуется составить план выпуска изделий, при котором достигается максимальная загрузка производственного оборудования. Обозначим через x1 и x2 плановые количества выпускаемых изделий первого и второго типа. Таким образом, можно записать целевую функцию: F x1 , x2 0,1x1 0,3 x2 0,5 x1 0,9 x2 0,3 x1 0,2 x2 0,9 x1 1,4 x2 max .
( 3.20 )
Ограничения имеют вид: 0,1x1 0,3 x2 200; 0,5 x1 0,9 x2 700; 0,3 x 0,2 x 330. 1 2 x1 0; x2 0.
( 3.21 ) ( 3.22 )
Для графического решения задачи, вначале выделим в координатной плоскости x1x2 область допустимых решений2 (см. рис. 3.1). 2
Более подробно о том, как строить линии ограничений - см. раздел 1.2.
34
Рис. 3.1 – Графический способ нахождения области допустимых решений Как было уже описано в разделе 1.2, существует теорема, согласно которой если оптимальное решение линейной задачи существует, то оно находится в точке на границе ОДР – в одной из вершин многоугольника JCAEI. Поэтому, достаточно найти координаты (x1i, x2i) этих точек и подставить значения в уравнение для целевой функции F x1 , x2 . Координаты точки (x1i, x2i) при которых ЦФ принимает большее значение и есть решение задачи. Для поиска оптимальной точки также можно воспользоваться градиентным методом. Для этого построим два графика F x1 , x2 при произвольных значениях целевой функции, например: ( 3.23 ) F1 x1 , x2 0,9 x1 1,4 x2 500 , ( 3.24 ) F2 x1 , x2 0,9 x1 1,4 x2 1000 . Вектор градиента G показывает направление роста целевой функции F x1 , x2 . Если провести линию перпендикулярную линиям F1 x1 , x2 и F2 x1 , x2 то направление вектора G будет от F1 к F2, так как F1 < F2. В нашем случае, градиент G направлен направо вверх (см. рис. 3.2). Так как решается задача максимизации, то для отыскания оптимальных значений x1опт, x2опт необходимо перенести любую прямую F x1 , x2 в сторо ну, указываемую вектором градиента G в точку касания с областью допустимых решений ОДР3.
3
При решении задачи минимизации прямую нужно переносить в сторону противоположную вектору градиента
35
Рис. 3.2 – Нахождение оптимального решения с помощью градиента Как видно из рис. 3.2, если перемещать любую из прямых F x1 , x2 , параллельно самой себе в направлении, указываемом вектором градиента, то в конечном итоге она будет иметь точку касания с ОДР в точке Е. Действительно, если подставить в уравнение ЦФ (3.20) координаты точки Е (x1 = 923,5; x2 = 264,7) то получим: FE F x1 , x2 0,9 x1 1,4 x2 0,9 923,5 1,4 264,7 1201,8 .
( 3.25 )
Любая другая пара значений x1 , x2 из ОДР даст меньшее значение ЦФ, поэтому можно считать, что оптимальное значение найдено. Округляя дробные значения x1 и x2, получим что, максимальная загрузка оборудования в F = 1200,3 ч будет достигнута при изготовлении: x1опт = 923 шт. изделий 1-го типа, x2опт = 264 шт. изделий 2-го типа. При этом фактическое время работы оборудования, составит: для токарных станков: для фрезерных станков: для сверлильных станков:
171,5 ч < B1 = 200 ч, 699,1 ч < B2 = 700 ч, 329,7 ч < B3 = 330 ч.
( 85,8%) ( 99,9%) ( 99,9%)
3.3 Пример решения задачи оптимизации с помощью программного комплекса MatLab В программном комплексе MatLab существует целая библиотека функций для решения задач оптимизации – «Optimization Toolbox». Она содержит десятки функций, позволяющих решать задачу минимизации и максимизация 36
как линейных, так и нелинейных функций многих переменных при различных постановках, условиях и ограничениях. Для решения задачи линейного программирования таковой является функция linprog. Функция имеет несколько способов обращения, один из которых представлен на рис. 3.3.
Рис. 3.3 – Вариант способа обращения к функции linprog Таким образом, для решения задачи оптимизации объемного планирования, рассмотренной в предыдущем разделе, необходимо в тексте программы подготовить матрицы коэффициентов, и преобразовать уравнение целевой функции, так чтобы получилась задача минимизации. Для этого, обычно исходную функцию умножают на минус единицу: ( 3.26 ) F x1 , x2 0,9 x1 1,4 x2 min , или в матричной форме: x F x1 , x2 0,9 1,4 1 min . x2
( 3.27 )
Ограничения в матричной форме будут иметь вид: 0,1 0,3 200 0,5 0,9 x1 700 , x 0,3 0,2 2 330 0 x1 0 x . 2
( 3.27 ) ( 3.28 )
Переменные x1 и x2 ограничены непосредственно только снизу, верхняя граница отсутствует. 37
Ниже приводится программа, написанная на языке MatLab, для решения текущей задачи. Результат
Как видно, результат получился таким же, как и раньше. Значение же ЦФ необходимо умножить на ( -1 ). 3.4 Задания на самостоятельную работу Самостоятельно решите следующие оптимизационные задачи. Для выполнения заданий графическим методом можно использовать MatLabпрограмму, приведенную в приложении 3. Для проверки правильности найденных решений используйте рассмотренную выше функцию linprog. Задача об оптимальном раскрое листового материала [3] Имеется некоторый материал в виде стандартных листов, которые необходимо раскроить для получения не менее 80 шт. деталей типа 1 и не менее 40 шт. деталей типа 2. Известны четыре способа раскроя листа, каждый из которых дает результат представленный в табл. 3.6. Таблица 3.6 – Исходные данные к задаче Способы раскроя
I
II
III
IV
деталь 1-го типа
3
2
1
0
деталь 2-го типа
1
6
9
13
Результат
Требуется так провести операцию раскроя, чтоб общий расход листов оказался минимальным.
38
Планирование работы механического участка для достижения максимальной прибыли Для изготовления двух видов изделий А и В завод расходует в качестве сырья сталь и цветные металлы, запас которых ограничен. На изготовление указанных изделий заняты токарные и фрезерные станки в количестве, указанном в таблице 3.7. Таблица 3.7 – Исходные данные к задаче Потребность в сырье для изделий, кг Виды сырья Изделие 1 Изделие 2
Ресурсы, кг
Сталь
100
700
3200
Цвет. мет.
200
500
4200
Трудоемкость изготовления, час Изделие 1
Изделие 2
Фонд времени работы оборудования, час
Токарные станки
30
40
620
Фрезерные станки Прибыль на одно изделие, тыс. руб.
20
10
340
3
8
Оборудование
Требуется определить план выпуска продукции, при котором будет достигнута максимальная прибыль. 3.5 Рекомендуемая литература 1. Гловацкая А.П. Методы и алгоритмы вычислительной математики: Учеб. пособие для вузов. – М.: Радио и связь, 1999. – 408 с.: ил. 2. Говорухин В.Н., Цибулин В.Г. Компьютер в математическом исследовании: Учебный курс. – СПб.: Питер, 2001. 3. Копосов В.Н. Математическое моделирование процессов в машиностроении. Конспект лекций – www.elib.ispu.ru. 4. Трофимов И.Е. Решение линейной программы симплексным методом в обычном, целочисленном и частично целочисленном вариантах в среде MATLAB – www.exponenta.ru.
39
Приложения
40
Приложение 1 – MatLab-программа графического решения задачи оптимизации режимов резания при точении % ПРОГРАММА ГРАФИЧЕСКОГО РЕШЕНИЯ ЗАДАЧИ ОПТИМИЗАЦИИ РЕЖИМОВ РЕЗАНИЯ ПРИ ТОЧЕНИИ clear, clc % ИСХОДНЫЕ ДАННЫЕ % Параметры обработки Rz = 80; % Шероховатость, мкм t = 5; % Глубина резания, мм % Параметры станка n_min = 25; % Минимальная частота вращения шпинделя, об/мин n_max = 2000; % Максимальная частота вращения шпинделя, об/мин s_min = 0.05; % Минимальная рабочая подача, мм/об s_max = 2.8; % Максимальная рабочая подача, мм/об D_c = 400; % Максимальный обрабатываемый диаметр заготовки над станиной, мм N = 5.5; % Мощность главного привода станка, кВт efficiency = 0.7; % КПД % Параметры инструмента material = 'Т5К10'; % Материал режущей части T = 30; % Стойкость, мин % Параметры заготовки steel = 'Сталь 45'; % Марка стали sigma = 530; % Предел прочности на растяжение, МПа L = 250; % Длина заготовки, мм D = 120; % Диаметр заготовки, мм % Значения коэффициентов из справочника, характеризующие условия обработки % Используемые при расчете ограничения по жесткости (виброустойчивости) C_s = 0.164; % Постоянный коэффициент z_s = 0.4; % Коэффициент влияния подачи на шероховатость P_s = 0.25; % Коэффициент влияния радиуса при вершине на шероховатость x_s = 0.55; % Коэффициент влияния скорости резания на шероховатость K_s = 1.18; % Коэффициент влияния переднего угла на шероховатость % Используемые при расчете ограничения по стойкости C_v = 350; % Постоянный коэффициент x_v = 0.15; % Коэффициент влияния глубины резания на скорость резания y_v = 0.35; % Коэффициент влияния подачи на скорость резания m = 0.20; % Коэффициент влияния стойкости инструмента на скорость резания K_v = 0.74; % Поправочный коэффициент на условия обработки % Используемые при расчете ограничения по мощности C_Pz = 300; % Постоянный коэффициент x_Pz = 1.0; % Коэффициент влияния глубины на температуру в зоне резания y_Pz = 0.75; % Коэффициент влияния подачи на температуру в зоне резания n_Pz = -0.15; % Коэффициент влияния скорости на температуру в зоне резания K_Pz = 0.77; % Допустимая температура в зоне резания, градусы Цельсия % РЕШЕНИЕ ЗАДАЧИ % Расчет коэффициентов b1 .. b7 линеаризованной системы b(1) = log(C_s*D_c^z_s/t^x_s*(D/D_c)^P_s*K_s); b(2) = log(1000*C_v/T^m/t^x_v/pi/D*K_v); b(3) = log(6000*N*efficiency/C_Pz/t^x_Pz/K_Pz*(1000/pi/D)^(n_Pz+1)); b(4) = log(n_min); b(5) = log(n_max); b(6) = log(s_min); b(7) = log(s_max); % Графические построения figure(1), clf x1_array = linspace(b(4)*0.8,b(5)*1.1,60); % Массив переменных x1 x2_array = linspace(b(6)*1.1,b(7)*1.1,60); % Массив переменных x2 hold on % Построение кинематических ограничений x1_array_min = min(x1_array); x1_array_max = max(x1_array); x2_array_min = min(x2_array); x2_array_max = max(x2_array); plot([x1_array_min;x1_array_max], [b(6);b(6)],'linewidth',2); text(x1_array_max*0.5,b(6)*1.05,... 'Ограничение по минимальной подаче','fontsize',14,'color','b'); plot([x1_array_min;x1_array_max], [b(7);b(7)],'linewidth',2);
41
%
%
%
%
%
%
text(x1_array_max*0.5,b(7)*1.1,... 'Ограничение по максимальной подаче','fontsize',14,'color','b'); plot([b(4);b(4)], [x2_array_min;x2_array_max],'linewidth',2); text(b(4),x2_array_max*0.6,'Ограничение по','fontsize',14,'color','b',... 'HorizontalAlignment','right'); text(b(4),x2_array_max*0.5,'минимальной частоте','fontsize',14,'color','b',... 'HorizontalAlignment','right'); plot([b(5);b(5)], [x2_array_min;x2_array_max],'linewidth',2); text(b(5),x2_array_max*0.6,'Ограничение по','fontsize',14,'color','b') text(b(5),x2_array_max*0.5,'максимальной частоте','fontsize',14,'color','b') Построение ограничения по жесткости технологической системы plot(x1_array,ones(size(x1_array))*b(1),'--r','linewidth',2) text(x1_array_max*0.8,b(1)*1.1,... 'Ограничение по жескости','fontsize',14,'color','r'); Построение ограничения по стойкости режущего инструмента plot(x1_array,(b(2)-x1_array)/y_v,'-sg','linewidth',2) text(mean(x1_array)*0.95,(b(2)-mean(x1_array)*0.95)/y_v,... 'Ограничение по стойкости','fontsize',14,'color','g'); Построение ограничения по мощности главного привода станка plot(x1_array,(b(3)-(n_Pz+1)*x1_array)/y_Pz,'.-k','linewidth',2) text(mean(x1_array)*1.2,(b(3)-(n_Pz+1)*mean(x1_array)*1.2)/y_Pz,... 'Ограничение по мощности','fontsize',14,'color','k'); Построение функций F(x1,x2) при некоторых значениях ЦФ F1 = round(max(x1_array)/6+max(x2_array)/6); F2 = round(max(x1_array)/2+max(x2_array)/2); plot(x1_array,F1-x1_array,'m','linewidth',1) text(max(x1_array)/2,F1-max(x1_array)/2,strcat('F(x_1,x_2) = ',... num2str(F1)),'fontsize',14,'color','m') plot(x1_array,F2-x1_array,'m','linewidth',1) text(max(x1_array)/1.3,F2-max(x1_array)/1.3,strcat('F(x_1,x_2) = ',... num2str(F2)),'fontsize',14,'color','m') Построение вектора градиента plot([x1_array_min*1.4; x1_array_max*0.6],... [-F2+x1_array_min*1.4; -F2+x1_array_max*0.6],'m','linewidth',3) plot([x1_array_max*0.57, x1_array_max*0.6],... [(-F2+x1_array_max*0.57)*0.7; -F2+x1_array_max*0.6],'m','linewidth',3) plot([x1_array_max*0.58, x1_array_max*0.6],... [(-F2+x1_array_max*0.58)*1.3; -F2+x1_array_max*0.6],'m','linewidth',3) text(x1_array_max*0.6, -F2+x1_array_max*0.6,... 'Вектор градиента G','fontsize',16,'color','m') Дооформление графиков axis([x1_array_min*0.8 x1_array_max*1.1 x2_array_min*1.1 x2_array_max*1.1]) grid on xlabel('x_1','fontsize',14) ylabel('x_2','fontsize',14) title('Графическое решение задачи оптимизаци','fontsize',18,'color','r')
42
Результат выполнения программы
43
Приложение 2 – MatLab-программа нахождения траектории вспомогательных перемещений при центровании % ПРОГРАММА НАХОЖДЕНИЯ ТРАЕКТОРИИ ВСПОМОГАТЕЛЬНЫХ ПЕРЕМЕЩЕНИЙ ПРИ ЦЕНТРОВАНИИ clear, clc % ИСХОДНЫЕ ДАННЫЕ % Контур детали x_part = [0, 52.5, 52.5, 72.5, 72.5, 125, 125, y_part = [0, 0, 24, 24, 0, 0, 135, % Координаты отверстий в детали % 1 2 3 4 5 6 7 8 9 x = [13, 100, 115, 115, 100, 48, 13, 115, 13, y = [122, 123, 123, 111, 93, 88, 73, 67, 52, N = length(x); % Точка смены инструмента x0 = 50; y0 = -50;
0, 0]; 135, 0]; 10 11 115, 13, 27, 15,
12 13 14 45.5, 79.5, 115]; 20, 8, 12 ];
% РЕШЕНИЕ ЗАДАЧИ % Включение точки смены инструмента как точки с номером N+1 x = [x, x0]; y = [y, y0]; % Расчет матрицы расстояний между точками [C] for i=1:N+1; for j=1:N+1; C(i,j) = sqrt((x(i)-x(j))^2 + (y(i)-y(j))^2); if i==j C(i,j) = inf; end end end % Нахождение базового маршрута "жадным" методом greedily_L = C; % Копирование матрицы расстояний greedily_path(1) = N+1; % Точка старта = точка смены инструмента k = N+1; % Текущая точка for i = 1 : N [L_min, k] = min(greedily_L(k,1:N)); % Поиск минимального расстояния в строке матрицы greedily_path(i+1) = k; % Включение новой точки в маршрут greedily_L(:,k) = inf; % Присвоение элемента столбца значения infinity end greedily_path(N+2) = N+1; % Последняя точка = точка смены инструмента % Расчет длины полученного маршрута greedily_path_length = 0; for i=1:length(greedily_path)-1 greedily_path_length = greedily_path_length + C(greedily_path(i),greedily_path(i+1)); end % Применение метода Монте-Карло для решения задачи Monte_path_length = inf; for k = 1:10000; % Запуск 10000 статистических экспериментов path_1 = [N+1, randperm(N),N+1]; path_1_length = 0; for i=1:length(path_1)-1 path_1_length = path_1_length + C(path_1(i),path_1(i+1)); end if path_1_length < Monte_path_length % Выбор кратчайшего пути Monte_path = path_1; % Путь найденный методом Монте-Карло Monte_path_length = path_1_length; % Длина пути end end % Применение алгоритма перестановок для улучшения обоих маршрутов greedily_path_new = greedily_path; greedily_path_new_length = greedily_path_length; Monte_path_new = Monte_path; Monte_path_new_length = Monte_path_length; for z = 1:N^2 for i = 2:N for j = 3:N+1; if i~=j path_new1 = greedily_path_new; path_new1(i) = greedily_path_new(j); path_new1(j) = greedily_path_new(i);
44
path_new2 = Monte_path_new; path_new2(i) = Monte_path_new(j); path_new2(j) = Monte_path_new(i); path_new1_length = 0; path_new2_length = 0; for k=1:length(path_new2)-1 path_new1_length = path_new1_length + C(path_new1(k),path_new1(k+1)); path_new2_length = path_new2_length + C(path_new2(k),path_new2(k+1)); end if path_new1_length
else text(0,0.4, 'После алгоритма перестановок','Fontsize',14,'Color','r'); text(-0.2,0.2, num2str(greedily_path_new),'Fontsize',12,'Color','r'); text(-0.2,0.0, strcat('Длина пути L = \it',... num2str(greedily_path_new_length),'\rm мм'),'Fontsize',12,'Color','r'); end subplot(3,2,6) axis off text(0,1.0, 'Метод Монте-Карло','Fontsize',14,'Color','b'); text(-0.2,0.8, num2str(Monte_path),'Fontsize',12,'Color','b'); text(-0.2,0.6, strcat('Длина пути L = \it',... num2str(Monte_path_length),'\rm мм'),'Fontsize',12,'Color','b'); if Monte_path_length==Monte_path_new_length text(0,0.3, 'Алгоритм перестановок результат не улучшил','Fontsize',12,'Color','r');
45
else text(0,0.4, 'После алгоритма перестановок','Fontsize',14,'Color','b'); text(-0.2,0.2, num2str(Monte_path_new),'Fontsize',12,'Color','b'); text(-0.2,0.0, strcat('Длина пути L = \it',... num2str(Monte_path_new_length),'\rm мм'),'Fontsize',12,'Color','b'); end
Результат выполнения программы
46
Приложение 3 – MatLab-программа графического решения задачи оптимизации объемного планирования загрузки производственного участка % Программа решения задачи объемного планирования % графическим способом clear, clc % ИСХОДНЫЕ ДАННЫЕ % Матрица трудоемкостей изготовления изделий C = [0.1 0.3; 0.5 0.9; 0.3 0.2]; % Массив фонда времени работы оборудования B = [200; 700; 330]; % Прочие ограничения x1_min = 0; % Согласно условиям задачи x2_min = 0; % Согласно условиям задачи x1_max = 2000; % Априорно (для построения графиков) x2_max = 1200; % Априорно (для построения графиков) % ГРАФИЧЕСКОЕ РЕШЕНИЕ ЗАДАЧИ % Вычерчивание линий ограничений x1_array = linspace(x1_min,x1_max,1000); % Массив x1 x2_array = linspace(x2_min,x2_max,1000); % Массив x2 figure(1), clf title('Графическое решение задачи оптимизации функции двух переменных','fontsize',14)
xlabel('x_1','fontsize',14); ylabel('x_2','fontsize',14); hold on, grid axis([x1_min-x1_max/10 x1_max x2_min-x2_max/10 x2_max]) for i=1:length(B) plot(x1_array,(B(i)-C(i,1)*x1_array)/C(i,2),'linewidth',2) end plot(x1_array,ones(size(x1_array))*x2_min,'k','linewidth',2); plot(ones(size(x1_array))*x1_min,x2_array,'k','linewidth',2); % Расчет параметров точек пересечения линий ограничений k = 1; s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; C1 = C;B1 = B; C1([length(B1)+1,length(B1)+2],1:2)=[1,0;0,1]; B1([length(B1)+1,length(B1)+2]) = [0;0]; for i = 1:length(B1)-1; for j = i+1:length(B1); CC = C1([i,j],:); BB = B1([i,j]); xx(k,1:2) = (CC\BB)'; FF(k) = sum(C(:,1))*xx(k,1)+sum(C(:,2))*xx(k,2); text(xx(k,1),xx(k,2),strcat('\bf\bullet\leftarrow',s(k),'\rm(',num2str(xx(k,1)),... ';',num2str(xx(k,2)),')'),'fontsize',12,'color','r'); text(xx(k,1),xx(k,2),strcat('\bf\itF(x_1,x_2)=',num2str(FF(k)),'\rightarrow'),... 'HorizontalAlignment','right','fontsize',12);
k = k+1; end end
47
Результат выполнения программы
48