Научная статья на тему 'ОПТИМИЗАЦИЯ РАССТАНОВКИ КРЕПЕЖНЫХ ЭЛЕМЕНТОВ ПРИ СБОРКЕ САМОЛЕТОВ НА ОСНОВЕ МЕТОДА ПРЯМОГО ПОИСКА НА АДАПТИВНЫХ СЕТКАХ'

ОПТИМИЗАЦИЯ РАССТАНОВКИ КРЕПЕЖНЫХ ЭЛЕМЕНТОВ ПРИ СБОРКЕ САМОЛЕТОВ НА ОСНОВЕ МЕТОДА ПРЯМОГО ПОИСКА НА АДАПТИВНЫХ СЕТКАХ Текст научной статьи по специальности «Математика»

CC BY
21
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Труды МАИ
ВАК
Область наук
Ключевые слова
СБОРКА САМОЛЕТА / ОПТИМИЗАЦИЯ СБОРКИ / МЕТОД ЛОКАЛЬНЫХ ВАРИАЦИЙ / БЕЗГРАДИЕНТНАЯ ОПТИМИЗАЦИЯ / КОНТАКТНАЯ ЗАДАЧА / AIRCRAFT ASSEMBLY / ASSEMBLY OPTIMIZATION / LOCAL VARIATIONS METHOD / GRADIENTLESS OPTIMIZATION / CONTACT PROBLEM

Аннотация научной статьи по математике, автор научной работы — Погарская Татьяна Аркадьевна

Статья посвящена разработке метода оптимизации расстановки временных фиксирующих элементов при сборке самолетов, основанного на безградиентном методе прямого поиска на адаптивных сетках (Mesh Adaptive Direct Search). Рассмотрены наиболее часто используемые подходы, применяемые при оптимизации дискретных систем. Работа методов продемонстрирована на упрощенной модели соединения крыла с фюзеляжем, проведено сравнение с результатом работы метода локальных вариаций, часто используемом для решения подобных задач (вариант жадного алгоритма). Проанализировано время работы реализованных алгоритмов и оценена дальнейшая возможность их применения при расчетах на полномасштабных моделях реальных самолетов.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Погарская Татьяна Аркадьевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FIXTURE ELEMENTS ARRANGEMENT OPTIMIZATION WHEN AIRCRAFT ASSEMBLY BASED ON MESH ADAPTIVE DIRECT SEARCH

The presented article is devoted to the problem of the arrangement optimization of fixture elements while aircraft assembly. Minimization of fixture elements number preserving the final product quality is one of the key factors of production intensification in aerospace industry. The objective of the work consists in verifying further application possibility of Mesh Adaptive Direct Search and its modification to the problem under consideration. This method is stipulated by its following specifics, such as no need for derivations computing, and the structure, which implies two independent computing blocks. The first feature is important since the optimization problem under consideration is combinatorial and relates to the NP class. Correspondingly, derivations computing is not possible, and the global minimum can be found by the full enumeration method. The second feature, namely steps independence, opens the possibility of employing any algorithm as a search step. The article considers the following approaches: black box optimization, black box optimization with spatial relaxation of forces and a technique of modified step of searching based on total information on the problem being solved. Computations were performed on the test model of the wing attachment with fuselage. The results are compared with Local Variation Method (a greedy algorithm) to evaluate their efficiency and possibility of their further application for optimization of full-scale models. Mesh Adaptive Direct Search proved to be applicable as it allowed obtain improved relative to the initial fixture elements arrangement. Modification of the algorithm searching step based on total known information ensured the best balance between computation time and the final result quality.

Текст научной работы на тему «ОПТИМИЗАЦИЯ РАССТАНОВКИ КРЕПЕЖНЫХ ЭЛЕМЕНТОВ ПРИ СБОРКЕ САМОЛЕТОВ НА ОСНОВЕ МЕТОДА ПРЯМОГО ПОИСКА НА АДАПТИВНЫХ СЕТКАХ»

УДК 519.688 DOI: 10.34759/trd-2020-110-18

Оптимизация расстановки крепежных элементов при сборке самолетов на основе метода прямого поиска на адаптивных сетках

Погарская Т.А.

Санкт-Петербургский политехнический университет Петра Великого, ул. Политехническая, 29, Санкт-Петербург, 195251, Россия e-mail: Pogarskaya.t@gmail.com

Статья поступила 27.11.2019

Аннотация

Статья посвящена разработке метода оптимизации расстановки временных фиксирующих элементов при сборке самолетов, основанного на безградиентном методе прямого поиска на адаптивных сетках (Mesh Adaptive Direct Search). Рассмотрены наиболее часто используемые подходы, применяемые при оптимизации дискретных систем. Работа методов продемонстрирована на упрощенной модели соединения крыла с фюзеляжем, проведено сравнение с результатом работы метода локальных вариаций, часто используемом для решения подобных задач (вариант жадного алгоритма). Проанализировано время работы реализованных алгоритмов и оценена дальнейшая возможность их применения при расчетах на полномасштабных моделях реальных самолетов.

Ключевые слова: сборка самолета, оптимизация сборки, метод локальных вариаций, безградиентная оптимизация, контактная задача.

Введение

Современные авиационные конструкции, такие как планер самолета, изготавливаются из множества длинномерных легко деформирующихся деталей небольшой жесткости, зачастую имеющих сложную форму. Однако, несмотря на большой размер, к качеству их соединения предъявляются жесткие требования, так как даже незначительные дефекты, возникающие при сборке, способствуют возникновению повышенных механических напряжений в конструкции, что в дальнейшем может привести к появлению трещин [1, 2]. При этом лишь часть сборочных работ механизирована и автоматизирована - многие этапы вынужденно выполняются вручную, что увеличивает их трудоемкость. Одним из таких этапов является предварительная сборка, в ходе которой части соединяются временными крепежными элементами перед проведением дальнейших операций. Этот этап создает основу для обеспечения надежного контакта между деталями. При этом необходимо учитывать, что практически все детали неизбежно деформируются во время производства, транспортировки и установки на сборочной линии. Из-за вышеперечисленных факторов полный контакт во всей области соединения не может быть достигнут - всегда имеет место некоторый начальный зазор. Как отмечается в [3], этот зазор в дальнейшем может стать причиной вибраций во время сверления новых отверстий, из-за чего возникает их несоосность, а также увеличивается риск попадания стружки между соединяемыми деталями. Подобные явления приводят к ухудшению качества сборки и возникновению дополнительных напряжений в элементах конструкции [1].

Подход, представленный в данном исследовании, нацелен на ускорение

производственного процесса за счет оптимизации числа и расположения временного

крепежа, что способствует уменьшению количества трудоемких операций по его

установке.

Постановка задачи

Во время сборки самолета необходимо контролировать как зазоры между соединяемыми деталями, так и возникающие в них напряжения. С одной стороны, начальный зазор между деталями должен быть сведен полностью, а с другой, необходимо избегать трещин и расслоения композита, которые могут возникнуть из-за напряжений от установленных фиксирующих элементов [4]. Для соблюдения обоих критериев будем решать особый класс контактных задач [5-7], возникающих при моделировании процесса соединения деталей, и обладающих следующими характерными особенностями:

• Зона возникновения потенциального контакта (зона стыка) известна заранее;

• Напряженно-деформированное состояние описывается линейной теорией упругости;

• Касательные перемещения пренебрежимо малы по сравнению с нормальными;

• Внешние силы прикладываются только в зоне стыка;

• Задача является стационарной;

• Крепежный элемент моделируется парой противонаправленных нормальных сил, прикладываемых к узлам на поверхностях соединяемых деталей;

• Ввиду небольших касательных смещений, трение можно исключить из рассмотрения.

Математически такая задача формулируется как поиск минимума квадратичного функционала энергии системы при наличии линейных ограничений на перемещения. После дискретизации с помощью метода конечных элементов, задача может быть переформулирована в виде [7]:

где x - вектор перемещений и поворотов узлов конечных элементов всех частей сборки, К - матрица жесткости системы, F - вектор приложенных сил, -допустимое множество решений.

Исходная задача (1) может быть приведена к редуцированному виду [8]:

где ^ - вектор приложенных нормальных сил в зоне стыка (от крепежных элементов); Кс - редуцированная матрица жесткости; А - линейный оператор, определяющий нормальное направление к контактной поверхности, g - начальный зазор в зоне стыка, представляющий собой начальное расстоянием по нормали между узлами, которые могут прийти во взаимодействие. В данной формулировке вектор и содержит лишь представляющие интерес степени свободы в узлах зоны стыка, например, нормальные перемещения.

Таким образом, моделирование сборки сводится к решению задачи квадратичного программирования (2). Отметим, что матрицы А и Кс описывают

тт \ —хТК • х — FТх \2

(1)

(2)

общую топологию соединения и механические свойства деталей. Вектор

результирующего зазора между частями после скрепления вычисляется на основе

решения задачи (2) как г = — Ат -и + д. Методы решения подобных задач были

описаны в работах [7-9].

Задача оптимизации расстановки фиксирующих элементов может быть

сформулирована по-разному в зависимости от целей дальнейшего использования

результатов, однако в любом случае в процессе решения задачи необходимо

определить положения фиксирующих элементов, которые обеспечат достаточное

качество соединения (то есть сведут начальный зазор между деталями до заданного

диапазона).

В данной работе рассматривается следующая задача оптимизации: определить для заданного числа крепежных элементов их расположение в имеющихся отверстиях так, чтобы оно обеспечивало минимальное значение максимального зазора :

гт ах(Н* ) = тт (гт ах(Н0)}, (3)

Н 0 ={ Н 0 }. „

п/=п0

где Н 0 = { к0^_1п - позиции отверстий в зоне стыка, где возможно установить

крепежи; пН - их общее число. Расположение крепежных элементов, установленных в отверстиях, описывается набором занятых отверстий Н 0 = { к¿0}_1п Н, где п^ -

общее количество установленных крепежных элементов. Каждый крепежный элемент моделируется парой сил с фиксированным значением, из которых затем собирается в задаче (2).

Методы оптимизации

В задаче оптимизации расстановки фиксирующих элементов имеются две основные особенности, накладывающие существенные ограничения на выбор методов оптимизации: рассматриваемая задача является комбинаторной и необходимость решения контактной задачи (2) возникает после каждого изменения конфигурации крепежных элементов. Причиной появления первой служит постановка задачи, в которой расположение отверстий для крепежных элементов предопределено, следовательно, пространство решений представляет собой бинарные вектора (отверстие может быть либо занято, либо свободно). Вторая особенность связана с изменением напряженно-деформированного состояния после установки каждого нового крепежного элемента или изменения его положения.

Ввиду описанных свойств, рассматриваемая задача относится к классу NP-полных. Известно, что каждая такая задача может быть точно решена методом полного перебора [10]. Величина пространства решений (число отверстий для расположения фиксирующих элементов может исчисляться сотнями) в данном случае делает невозможным применение данного метода в виду больших временных затрат на решение контактной задачи (2).

Учитывая вышеизложенное, для исследования был выбран метод прямого поиска на адаптивных сетках (Mesh Adaptive Direct Search, далее MADS) [11-12], поскольку он позволяет решать задачу оптимизации неопределенной функции цели

(оптимизация черного ящика и не требует вычисления производных функции цели

[13-15].

Алгоритм метода состоит из двух основных частей - шага опроса и шага поиска. Это дает возможность реализовать практически любой численный метод в качестве шага поиска и является существенным преимуществом в случае рассматриваемой задачи, так как появляется возможность использования всей доступной информации. Если на этапе шага поиска не удается найти новое приближение, уменьшающее значение функции цели, перед завершением итерации производится шаг опроса, на котором проводится локальное исследование пространства решений вблизи текущего приближения [11]. В работе рассматриваются три варианта применения метода MADS.

Оптимизация черного ящика

В качестве входных параметров алгоритм MADS на базе пакета NOMAD [1617] принимает число крепежных элементов Nf, расположение отверстий для установки крепежей в зоне стыка H = { h¿} t=± nh (nh - число отверстий, nh > N f ), начальное приближение H0 = { h0}._in с: H - некоторая исходная расстановка

фиксирующих элементов (представляет собой номера отверстий из H, в которые устанавливаются крепежные элементы).

Алгоритм оптимизации черного ящика

Шаг 1. Для начального приближения H 0 решается контактная задача (2) и вычисляется результирующий зазор в зоне стыка.

Шаг 2. Генерируется некоторый набор возможных приближений ± ( к

может принимать значения от п+1 до 2 п, где п - размерность задачи, в данном случае ).

Шаг 2.1. Полученные приближения оцениваются случайным образом: в качестве следующей итерации выбирается первое возможное приближение из { Н I _± которое позволяет уменьшить значение целевой функции, после чего осуществляется переход к шагу 1 с новым приближением Н *. Если уменьшить значение функции цели не удалось, переход к шагу 2.2.

Шаг 2.2. Увеличить разрешение сетки и перейти к шагу 2 со старым приближением.

Пространтсвенная релаксация

Вместо того чтобы фиксировать значения прикладываемой силы от крепежного элемента при решении контактной задачи (2) и оперировать понятиями занятых и свободных отверстий, рассмотрим переменные силы в крепежных элементах и минимизируем максимальный зазор, при учете того, что сумма сил по всем отверстиям не должна превосходить некоторого заданного значения , а сила в каждом конкретном крепежном элементе не должна превышать значения ^ах, соответсвующего максимально возможной приложеной силе. Одновременно используем аналог штрафной функции, чтобы уменьшить разброс сил и привести решение к бинарной форме (крепеж установлен или не установлен). Таким образом задача (3) может быть переписана как

Гп ах(К0) = п тш {гт аХ( ^ 0 )} (4)

1 1 }1 = 1,П£ П/ ^

£ I=1 — —тал:> —/тал:

где F 0 = { ^^ ^ - значения сил, приложенных в позициях, соответствующих

расположению отверстий в зоне стыка, где возможно установить крепежи, - их общее число. Распределение сил F 0 соответствует установке крепежных элементов во все отверстия со сводящей силой , отличной от нуля в случае

установки крепежа. Таким образом, алгоритм оптимизации будет выглядеть следующим образом:

Шаг 1. Для начального приближения F 0 решается контактная задача (2) и вычисляется результирующий зазор в зоне стыка.

Шаг 2. Генерируется некоторый набор возможных приближений. Шаг 2.1. Полученные приближения оцениваются случайным образом: в качестве следующей итерации выбирается первое возможное приближение, которое позволяет уменьшить значение целевой функции, после чего осуществляется переход к шагу 1 с новым приближением , где новое значение силы , при

котором удалось достичь уменьшения значения функции цели, изменяется по закону

2

= + ( . Если уменьшить значение функции цели не удалось,

происходит переход к шагу 2.2.

Шаг 2.2. Увеличить разрешение сетки и перейти к шагу 2 со старым приближением.

Mодифицированный шаг поиска

Алгоритм MADS был реализован с модификацией шага поиска с учетом

особенностей решаемой задачи, которая может быть проиллюстрирована

следующим образом на тестовой модели верхнего соединения крыла и фюзеляжа

(рис.1).

зазор, мм

Рисунок 1 - схема соединения крыла и фюзеляжа Матрица жесткости системы для модели верхнего соединения была рассчитана в пакете MSC КаБ^ап. Модель соединения представлена на рисунке 2 слева, где серым цветом обозначено крыло, а оранжевым - фрагмент фюзеляжа.

вычислительные узлы в зоне стыка

Рисунок 2 - тестовая модель для решения контактной задачи

Справа изображена часть зоны стыка, на которой видны узлы исходной

конечноэлементной сетки, вычислительные узлы, для степеней свободы которых

решается задача (2), а также отверстия для установки крепежных элементов.

Все отверстия сортируются по одной координате, каждому из них

сопоставляется средневзвешенный зазор в окрестных узлах, для которых это

отверстие является ближайшим.

Алгоритм модифицированного шага поиска

Пусть Fi - сила, действующая в отверстии i, Nf - количество крепежных элементов, N f- текущее количество установленных крепежных элементов, Gf -

результирующий зазор, дapi - текущий зазор в отверстии i. Тогда алгоритм может

быть описан следующим образом:

Если (N f < Nf) Повторить:

Если (д api _ ± < д api) и (д api+± < д api)

Поставить фиксирующий элемент в отверстие Пока (N f < Nf)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Иначе

Повторить:

Если (д ap i _ ± > д ap i) и (д ap i+± > д ap i)

Удалить фиксирующий элемент из отверстия i

Пока (N f < N f)

После окончания работы шага поиска решается контактная задача (2) для определения результирующего зазора в зоне стыка, который обеспечивается

найденной расстановкой, принимаемой за новое приближение, после чего шаг

повторяется с этой конфигурацией и вычисленным зазором.

Для оценки качества результатов, полученных вариациями метода MADS, рассматриваемая задача также решается методом локальных вариаций, который представляет собой модификацию метода жадного алгоритма и основывается на поочередном изменении положения крепежных элементов в заранее заданном диапазоне. Этот метод был успешно применен для оптимизации расположения фиксирующих элементов как на упрощенной модели более сложного нижнего соединения крыла и фюзеляжа [18], так и на полномасштабной модели настоящего самолета [19].

Результаты расчетов и анализ

Описанные выше алгоритмы, включая метод локальных вариаций, были применены к упрощенной тестовой модели (рис. 1, 2), включающей 410 узлов и 60 отверстий одинакового диаметра; величина силы фиксирующих элементов составляет 1000 Н. Начальная расстановка представлена на рисунке 3.

Рисунок 3 - Начальная расстановка из пяти крепежей и результирующий зазор, мм В рассматриваемом примере требовалось установить 5 крепежных элементов так, чтобы обеспечить зазор между соединяемыми деталями, не превосходящий 0.2 мм. Полученные результаты представлены на рисунке 4.

• оптимизация черного I Iпространственна релаксация ^модифицированный шаг метод локальных вариаций

ящнка 1—1 поиска v

Рисунок 4 - полученные расстановки Значения полученных зазоров и время работы каждого алгоритма приведены в таблице 1. Самым быстрым оказался алгоритм с модифицированным шагом поиска. Из алгоритмов модификации метода MADS наименьшее значение функции цели было получено алгоритмом пространственной релаксации, однако время его работы существенно превосходит прочие рассмотренные алгоритмы. Это делает нецелесообразным его дальнейшее использование на полномасштабных моделях, так как применение метода локальных вариаций, который на тестовой модели оказался быстрее, даже с использованием распараллеливания превращается в дни [18-20].

Таблица 1

Результаты оптимизации

Алгоритм Время работы, с Максимальная величина зазора в зоне стыка, мм

Оптимизация черного ящика 150.0 0.15

Пространственная релаксация 178.2 0.10

Модифицированный шаг поиска 24.3 0.17

Метод локальных вариаций 32.1 0.07

Значительное увеличение времени работы алгоритма пространственной

релаксации вызвано длительным процессом накопления сил на некоторых

итерациях (например, 550-600, рисунок 5). В одних и тех же отверстиях

прикладывается все большая сила, до тех пор, пока за счет этого происходит

уменьшение значения функции цели, то есть зазора после установки

соответствующих крепежных элементов. Однако, при достижении ограничения на

величину максимально возможной силы, прикладываемой в отверстии, или

суммарной силы во всей зоне стыка происходит перераспределение сил по другим

отверстиям, что в итоге может привести к лучшему результату, но процесс

накопления начинается заново. Выбор другого закона изменения силы для более

быстрого насыщения, например, F¿0 = F¿0 * 1 . 3 , не приводит к сокращению числа

итераций расчета и, соответственно, не позволяет уменьшить время вычислений

(рис.6).

http://trudymai.ru/ 0.23

0 100 200 300 400 500 600 700 800

итерации

Рисунок 5 - итерации алгоритма пространственной релаксации для закон изменения

силы F0 = F0 + (F0 /VT^)2

Рисунок 6 - итерации алгоритма пространственной релаксации для закона

изменения силы

Заключение

Алгоритм модифицированного шага поиска на основе метода MADS позволяет получить необходимые результаты за сравнимое с аналогами время, что позволяет говорить о его возможном дальнейшем использовании для решения подобных задач больших размерностей.

Библиографический список

1. Bakker O.J., Popov A.A. and Ratchev S.M. Variation analysis of automated wing box assembly // The 50th CIRP Conference on Manufacturing Systems, Procedia CIRP 63, 2017. URL: http://eprints.nottingham.ac.uk/41389/1/PR0CIR-D-16-01298R1.pdf

2. Говорков А.С. Управление параметрами объектов производственной среды при разработке технологического процесса сборки изделия // Труды МАИ. 2011. № 48. URL: http://trudymai.ru/published.php?ID=27146

3. Yang D., Qu W. and Ke Y/Evaluation of residual clearance after prejoining and pre-joining scheme optimization in aircraft panel assembly' // Assembly Automation, 2016, vol. 36 (4), pp. 376 - 387.

4. Ларионова А.А., Дудченко А.А., Сергеев В.Н. Проектирование узлов механических композитно-металлических соединений // Труды МАИ. 2016. № 90. URL: http://trudymai.ru/published.php?ID=74691

5. Eck C., Janusek J., Krbec M. Unilateral contact problems. Variational methods and existing theorems, Taylor and Francis, 2005, 398 p.

6. Hlavacek I., Haslinger J., Necas J., Lovisek J. Solution of variational inequalities in

mechanics, Springer-Verlag, 1998, 287 p.

7. Lupuleac S.V., Petukhova M.V., Shinder Y.K., Bretagnol B. Methodology for solving contact problem during riveting process // SAE International Journal of Aerospace, 2011, vol. 4 (2), 952 - 957, doi: 10.4271/2011-01-2582

8. Petukhova M.V., Lupuleac S.V., Shinder Y.K., Smirnov A.B., Yakunin S.A., Bretagnol B. Numerical approach for airframe assembly simulation // Journal of Mathematics in Industry, 2014, vol. 4 (1), pp. 1 - 12.

9. Stefanova M., Yakunin S., Petukhova M., Lupuleac S., Kokkolaras M. An interior-point method based solver for simulation of aircraft parts riveting // Engineering Optimization, 2017, vol. 50 (5), pp. 781 - 796.

10. Marx D. A parameterized view on matroid optimization problems // Theoretical Computer Science, 2009, vol. 410 (44), pp. 4471 - 4479.

11. Abramson M.A., Audet C., Chrissis J.W., Walston, J.G. Mesh adaptive direct search algorithms for mixed variable optimization // Optimization Letters, 2009, vol. 3 (1), pp. 35 - 47.

12. Audet C., Dennis Jr. J.E. Mesh adaptive direct search algorithms for constrained optimization // SIAM Journal on Optimization, 2006, vol. 17 (1), pp. 188 - 217.

13. Audet C., Hare W. Derivative-Free and Blackbox Optimization, Springer Series in Operations Research and Financial Engineering, Springer International Publishing, 2017, 302 p. DOI 10.1007/978-3-319-68913-5

14. Audet C., Ihaddadene A., Digabel S.L., Tribes C. Robust optimization of noisy blackbox problems using the mesh adaptive direct search algorithm // Optimization Letters, 2018, vol. 12 (4), pp. 675 - 689.

15. Audet C., Kokkolaras M., Le Digabel S., Talgorn B. Order-based Error for Managing Ensembles of Surrogates in Mesh Adaptive Direct Search // Journal of Global Optimization, 2018, vol. 70, pp. 645 - 675.

16. Audet C., Le Digabel S., Tribes C. NOMAD user guide, Technical Report G-2009-37, Les cahiers du GERAD, 2009, 121 p.

17. Le Digabel S. Algorithm 909: NOMAD: Nonlinear Optimization with the MADS algorithm // ACM Transactions on Mathematical Software, 2011, vol. 37, issue 4, pp. 44:1

- 44:15.

18. Pogarskaia T., Churilova M., Petukhova M., Petukhov E. Simulation and optimization of aircraft assembly process using supercomputer technologies // Communications in computer and information science, 2019, vol. 965, pp. 367 - 378.

19. Zaitseva N., Pogarskaia T., Minevich O., Shinder J., Bonhomme E. Simulation of Aircraft Assembly Via ASRP Software, SAE Technical Papers, September, 2019, doi: 10.4271/2019-01-1887

20. Zaitseva N., Lupuleac S., Petukhova M., Churilova M., Pogarskaia T., Stefanova M. High Performance Computing for Aircraft Assembly Optimization // Global Smart Industry Conference, GloSIC 2018, Chelyabinsk, Russia, 13-15 November 2018, pp. 181

- 187. URL: http://toc.proceedings.com/42204webtoc.pdf

i Надоели баннеры? Вы всегда можете отключить рекламу.