Прогнозирование траектории движения судна при помощи нейронной сети

Тип работы:
Реферат
Предмет:
Кибернетика


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Выпуск 3
МОРСКОГО И РЕЧНОГО ФЛОТА ИМЕНИ АДМИРАЛА С О. МАКАРОВА
СУДОВОЖДЕНИЕ И БЕЗОПАСНОСТЬ НА ВОДНОМ ТРАНСПОРТЕ
УДК 656. 61. 052 А. Б. Сазонов,
д-р техн. наук, профессор, член-корреспондент РАН, ГУМРФ имени адмирала С. О. Макарова-
В. В. Дерябин,
канд. техн. наук, доцент, Архангельский филиал ГУМРФ имени адмирала С. О. Макарова
ПРОГНОЗИРОВАНИЕ ТРАЕКТОРИИ ДВИЖЕНИЯ СУДНА ПРИ ПОМОЩИ НЕЙРОННОЙ СЕТИ
FORECASTING TO PATHS OF THE MOTION SHIP WITH THE HELP OF NEYRONNOY NETWORK
Предлагается модель прогнозирования координат места судна с использованием нейронной сети, позволяющая осуществлять их прогноз в режиме реального времени. При этом используется информация о предшествующей траектории судна.
The model of the forecasting of the coordinates of the place ship is offered with the help of neyronnoy network, allowing realize their forecast in mode of the realtime. Herewith information is used about preceding paths ship.
Ключевые слова: траектория, координаты, нейронная сеть, прогноз.
Key words: path, coordinates, neyronnoy network, forecast.
О всех существующих системах управления движением судна, решающих задачу удержания судна на заданной траектории, объектом регулирования является судно. Регулятор же обеспечивает решение следующих основных задач:
— определяет текущие значения навигационных параметров движения судна (координаты, ускорение, скорость, курс) и их отклонение от заданных значений-
— рассчитывает прогнозируемые значения навигационных параметров движения судна-
— выполняет расчет управляющих воздействий, обеспечивающих движение судна по заданной траектории.
Из приведенного перечня основных задач, решаемых регулятором, следует, что задача прогнозирования траектории движения судна является их составной частью, что необходимо учитывать и при реализации этой задачи на основе нейронной сети.
Эту задачу необходимо рассматривать как нейросетевой регулятор, который в последующем должен войти в состав нейросетевой системы управления движением судна по заданной траектории.
При построении моделей движения судна на основе нейронных сетей приходится искать ответы на ряд вопросов.
В первую очередь необходимо определить, будет ли она в дальнейшем использоваться в нейросетевой системе управления движением судна с целью его удержания на заданной траектории или ее использование будет ограничено лишь решением одной из частных задач судовождения. Большое значение при этом будет иметь тип выбранной системы управления [7].
Известны два основных типа систем управления:
ВЕСТН1
ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
МОРСКОГО И РЕЧНОГО ФЛОТА ИМЕНИ АДМИРАЛА С. О. МАКАРОВА
— следящие системы, задачей которых является поддержание выхода системы (регулируемой величины) на заданной траектории движения объекта управления. В рассматриваемой в настоящей статье задаче регулируемыми величинами могут быть навигационные параметры движения судна.
— системы стабилизации, задачей которых является поддержание на выходе системы заданного значения регулируемой величины. Примером может служить система стабилизации судна на заданном курсе.
Систему управления движением судна с целью его удержания на заданной траектории следует отнести к классу замкнутых систем, состоящих из регулятора и объекта управления и соответствующих заранее определенной модели управления. В рассматриваемой в статье задаче такой моделью может быть модель управления, обеспечивающая удержание судна на заданной траектории. В процессе проектирования этих систем приходится определять тип метода (модели) управления, который будет реализован в системе. Наиболее известны два следующих метода:
— модельное управление-
— управление по эталонной модели.
Вне зависимости от типа метода для оценки качества регулирования наиболее часто используется управление по минимальному значению дисперсии. В нашем случае это может быть минимальное значение дисперсии смещения центра тяжести судна относительно заданной траектории его движения. К сожалению, рассматриваемая нами система, как известно, является нелинейной. И поэтому ее устойчивости при существующих системах регулирования (использование навигационного и инерциального счисления с коррекцией по спутниковым навигационным системам) обычно удается добиться только при определенных условиях плавания. При их изменении система остается неустойчивой и приходится ее перенастраивать.
Поэтому для прогнозирования траектории движения судна представляется целесообразным рассмотреть возможность создания адаптивного нейросетевого регулятора.
В настоящее время известны и наиболее часто используются два подхода к построению ней-росетевых регуляторов для подобных систем управления [7]:
— прямой подход — регулятор создается непосредственно на нейросетевой модели. Для нашей системы, учитывая ее неустойчивость, этот подход потребует разработки сложной системы ее адаптации в зависимости от изменения текущих условий плавания (в частности, изменения внешних сил, воздействующих на судно) —
— косвенный подход — регулятор остается прежний. Нейросетевой же регулятор используется как эталонная модель управления. Можно предположить, что создание подобного адаптивного нейросетевого регулятора, который можно считать эталонной моделью движения судна по заданной траектории, позволит добиться наилучшей устойчивости всей системы управления.
Существующая практика создания подобных нейросетевых регуляторов позволяет выделить следующие основные этапы:
— проведение эксперимента, целью которого является получение данных, представляющих собой объект регулирования «во всем рабочем диапазоне" —
— построение нейросетевой модели объекта регулирования посредством обучения нейросети на множестве экспериментальных образцов-
— синтез регулятора с использованием полученной нейронной модели.
Синтез подобной нейросетевой системы косвенного управления наиболее часто реализуется на основе инверсной модели объекта [7]. Этот подход предлагается использовать и в настоящей статье.
Следуя названным этапам проектирования предлагаемой в настоящей статье нейросетевой модели, на первом этапе проектирования определяется выход сети, то есть выходные величины, которые будет прогнозировать будущая нейронная сеть.
Выходными величинами могут быть ускорение, скорость или координаты центра тяжести судна. Затем нужно определить вход сети.
Выпуск 3
Выпуск 3
На втором этапе проектирования выбирается тип и архитектура нейронной сети. Большое значение при этом имеет также характер изменения прогнозируемых величин во времени, которые могут быть рассмотрены статически — как значения в конкретный момент времени или представлять собой временную последовательность. Решается вопрос о выборе либо статической, либо динамической нейронной сети.
Проектируемая нейронная сеть может играть вспомогательную роль или являться непосредственно моделью движения судна, что также оказывает влияние на выбор архитектуры и типа сети. В последнем случае свободные параметры нейронной сети (весовые коэффициенты и пороговые значения) зависят от характеристик судна.
В статье [4, с. 20−27] рассматривалась рекуррентная нейронная сеть, прогнозирующая скорость дрейфа судна в условиях воздействия внешних факторов (ветер и волнение). Эта сеть реализует модель нелинейной авторегрессии с внешними входами (КАЯХ). Свободные параметры данной сети зависят от физических параметров судна. Обучение производилось на образцах, полученных с использованием имитационной модели, основанной на численном интегрировании дифференциального уравнения. Вид этого уравнения во многом помог определить вектор входного сигнала сети. Другая нейронная сеть прогнозирует компоненты вектора относительной скорости судна в неподвижной системе координат и представляет собой сеть прямого распространения (ББКК). На входе данная сеть имеет величины, зависящие от продольной составляющей относительной скорости, скорости дрейфа и курса судна. Основным недостатком указанной нейросетевой системы является невозможность ее обучения непосредственно по координатам судна, так как выходные образцы представляют собой скорость. Как правило, в ходе натурных наблюдений на судах с высокой точностью известны именно координаты судна, полученные, например, при помощи спутниковых навигационных систем. Поэтому синтез нейронной сети, прогнозирующей координаты судна, можно считать более целесообразным по сравнению с построением сетей, имеющих на выходе ускорение или скорость. Более того, получение в качестве выходного сигнала координаты судна имеет преимущество перед прогнозом скорости или ускорения еще и в том, что исчезает необходимость в численном интегрировании, при котором появляются дополнительные погрешности.
В статьях [3, с. 33−40- 5, с. 229−246] предлагается использовать нейронную сеть для прогноза координат места судна, в которой ее весовые коэффициенты представляют собой физические характеристики судна — массу, коэффициенты присоединенных масс и др. Сеть имеет два нейрона, обладающих тождественной функцией активации. Обучение сети производилось на образцах, полученных в результате натурных наблюдений. Однако данная сеть способна прогнозировать траекторию судна только для узкого класса навигационных ситуаций, соответствующих тем внешним факторам, которые использовались при формировании образцов. Иными словами, сеть не обладает свойством генерализации, что можно попытаться объяснить ограниченным количеством образцов для обучения. Кроме того, используемые для обучения образцы охватывали не все навигационные ситуации, которые могут наблюдаться в действительности.
В [2, с. 172−173] была предложена нейронная сеть, преобразующая вектор относительной скорости судна в координаты судна в локальной системе координат. Данная сеть представляет собой модель КАЯХ и выполняет функции интегрирования относительной скорости во времени. Несмотря на то что на выходе сети получаются координаты, входные образцы не содержат информации о внешних факторах. Свободные параметры указанной сети не зависят от физических характеристик судна. Обучение сети происходит на образцах, полученных в ходе моделирования. Так как выборка входных величин указанной сети формировалась случайным образом, то выходной сигнал — координаты судна — изменялся во времени в тесных пределах (приблизительно от -300 до 300 м). Это обстоятельство позволяет предположить целесообразность использования приращений координат в качестве компонент выходного сигнала.
В настоящей статье предлагается построение нейронной сети, прогнозирующей координаты места судна на шаг вперед, если известны его координаты в предшествующие моменты времени. При таком подходе образцы представляют собой непосредственно координаты судна.
Сначала необходимо определить тип нейронной сети. Так как предполагается прогнозирование координат во времени, то имеет смысл использовать динамическую нейронную сеть. Известно [8], что задача прогнозирования временных рядов может быть решена при помощи фокусированной сети прямого распространения с задержкой по времени (ТЬБК). Вход такой сети представляет собой последовательность координат в предыдущие моменты времени, включая и текущее значение координат. Выход — координаты в последующий момент времени.
Используется двухслойная нейронная сеть, первый слой которой содержит 10 нейронов с сигмоидальными функциями активации, а второй слой состоит из одного нейрона с тождественной функцией активации. Выбор нелинейных функций активации можно объяснить тем, что процесс изменения координат во времени в общем случае носит нелинейный характер. Количество единичных задержек было выбрано равным 10. Общий вид нейронной сети представлен на рис. 1.
Рис. 1. Общий вид нейронной сети
В статье [1, с. 33−39] была предложена имитационная модель счисления пути судна в условиях воздействия внешних факторов. В ее основе лежит уравнение Рикатти, численное интегрирование которого позволяет найти скорость дрейфа конкретного судна в условиях воздействия ветра и волнения. Воспользуемся указанной моделью при формировании образцов для обучения синтезированной нейронной сети. В качестве параметров модели выберем параметры т/х «Инженер Плавинский» [1], массовое водоизмещение которого составляет 14 000 т.
Процесс обучения построим следующим образом. Накапливается множество образцов для обучения сети, после чего сеть обучается на данных образцах. Несмотря на то что некоторые исследования в области нейронных сетей [6- 8] позволили дать рекомендации относительно выбора числа образцов, необходимых для обучения сетей, мы ограничились числом 200. Увеличение числа образцов, с одной стороны, может повысить точность сети, но с другой — увеличить время обучения. Так как в дальнейшем предполагается использование алгоритма в режиме реального времени, то время обучения имеет существенное значение.
В качестве алгоритма обучения выбирается метод Левенберга-Марквардта [9, р. 164−168- 10, с. 431−441], реализующий идею градиентного спуска.
Время обучения ограничивается 100 с. Количество эпох и значение функции стоимости не ограничиваются. Для обучения используются все образцы из обучающей выборки, то есть отсутствуют образцы для проверки обобщающих свойств обученной сети.
Выпуск 3
V. МОРСКОГО И РІЧНОГО ФЛОТА ИМЕНИ АДМИРАЛА С. О МАКАРОВА
Для прогноза траектории необходимо построить две одинаковые сети, одна из которых прогнозирует абсциссу места судна в локальной системе координат, а другая — ординату, причем обучаются и работают сети независимо друг от друга.
После обучения возникает необходимость проверки адекватности сети. Сравниваются две траектории: спрогнозированная нейронной сетью и полученная в результате использования имитационной модели. В качестве критерия расхождения траекторий выбирается наибольшее значение модуля невязки на интервале прогноза.
Для использования модели навигационного счисления необходимо задать характеристики внешних факторов, а также курс и скорость судна. Рассмотреть все возможные навигационные ситуации невозможно, поэтому приходится ограничиваться некоторыми средними условиями, которые могут наблюдаться в действительности. Причем желательно, чтобы при этом изменение координат судна во времени носило ярко выраженный нелинейный характер. Для моделирования движения судна использовались следующие значения величин, характеризующих внешние факторы. Курсовой угол относительного ветра предполагается равным 90° правого борта, а его скорость — 15 м/с. Высота волны считается равной 5 м, длина волны — 150 м, курсовой угол — 90° левого борта, кажущийся период — 15 с. Судно следует курсом 45°, а продольная составляющая его относительной скорости равна 15 узлов.
Построение, обучение, тестирование сетей производилось в среде Ма1: ЬаЬ 7. 12.0.
Проверялась способность нейронных сетей прогнозировать координаты судна на 10 с вперед, если известны значения координат в текущий момент и предыдущие 200 значений. Начальная скорость дрейфа принимается равной нулю. Проверка происходит в течение 5 мин после накопления необходимого для обучения сетей количества образцов, то есть с 201-й с.
В результате исследования было получено, что нейронная сеть прогнозирует траекторию на 10 с вперед так, что среднее значение максимума модуля невязки на интервале прогноза составляет 0,1521 м. Таким образом, сеть прогнозирует траекторию судна с удовлетворительной для навигационных целей точностью.
Как известно, на обобщающие свойства сети оказывает существенное влияние число нейронов в скрытом слое. Построим нейронные сети, которые содержат 15 и 20 нейронов в скрытом слое. Как показали результаты проверки работоспособности данных сетей, наблюдается увеличение точности прогноза траектории судна. Результаты экспериментов приведены в табл. 1.
Таблица 1
Результаты тестирования нейронных сетей, имеющих различное число нейронов
Наибольшее значение модуля невязки на интервале 10 с, м
Наименьшее Наибольшее Среднее
10 нейронов 0,0013 3,8266 0,1521
15 нейронов 0,0004 1,9543 0,0641
20 нейронов 0,0007 0,9160 0,0569
& lt-ч
Ш
Необходимо отметить, что в ходе обучения сетей, содержащих 10 и 15 нейронов в скрытом слое, наблюдались ситуации, в которых обучение не завершалось успешно (модуль невязки превосходил 10 м на интервале в 10 с). Возможно, это явление вызвано недостаточным количеством нейронов в скрытом слое или малым числом образцов обучающей выборки.
В проведенных экспериментах прослеживается увеличение точности прогноза траектории при увеличении числа нейронов в скрытом слое. Однако, изменяя это число, мы оставляем неизменным время обучения. Хотя для сетей с большим числом свободных параметров может потребоваться и большее время обучения для достижения более высокой точности.
Также было проведено исследование зависимости точности прогноза нейронной сети от длины обучающей выборки, то есть от числа образцов. Производилось обучение сети, имеющей
ВЕСТНИК*)
ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА -Ч.
МОРСКОГО И РЕЧНОГО ФЛОТА ИМЕНИ АДМИРАЛА С О. МАКАРОВА,
20 нейронов в скрытом слое, при различном количестве образцов. Так, длина обучающей выборки включала 250, 300 и 350 предыдущих значений координат. Результаты эксперимента представлены в табл. 2.
Как видно из данной таблицы, при увеличении количества образцов уменьшается средняя ошибка прогноза траектории. Однако, увеличивая число образцов для обучения, мы оставляли неизменным время обучения. Хотя при увеличении количества образцов для достижения большей точности может потребоваться большее время обучения.
Таблица 2
Результаты тестирования нейронных сетей, обученных с использованием различного количества образцов
Наибольшее значение модуля невязки на интервале 10 с, м
Наименьшее Наибольшее Среднее
200 образцов 0,0007 0,9160 0,0569
250 образцов 0,0007 0,4663 0,0295
300 образцов 0,0003 0,3127 0,0183
350 образцов 0,0002 0,2843 0,0165
Таким образом, увеличение числа нейронов в скрытом слое и числа образцов для обучения приводит к повышению точности прогнозирования координат места судна.
Предложенная модель прогнозирования координат места судна с использованием нейронных сетей позволяет прогнозировать координаты места судна в режиме реального времени на любое число шагов вперед, используя информацию о предшествующей траектории судна. Координаты судна могут быть получены с высокой точностью при помощи, например, спутниковых навигационных систем. То есть нейронная сеть может обучаться на образцах, получаемых в ходе натурных наблюдений.
Практическое применение данной модели может заключаться в ее использовании для выявления грубых ошибок в работе той или иной системы позиционирования. Кроме того, имеется возможность использования нейронной сети для прогноза (экстраполяции) траектории движения судна, когда по тем или иным причинам получить координаты от системы позиционирования не представляется возможным.
Синтезированная нейронная сеть может выступать также в роли адаптивного фильтра, если использовать не прогнозируемое на шаг вперед, а текущее значение координаты в качестве выхода фильтра. Число временных задержек есть порядок фильтра.
Особенность фильтра, основанного на нейронных технологиях, заключается в отсутствии ограничений, накладываемых на условия оптимальной фильтрации адаптивных алгоритмов, разработанных на основе теории вероятностей. Одним из таких условий для фильтра Калмана, например, является нормальный закон распределения вектора ошибок в уравнении состояния.
Было проведено следующее исследование. На интервале времени 10 мин были рассчитаны координаты движущегося судна с использованием имитационной модели. Затем к значениям координат были прибавлены случайные ошибки их определения, полученные при помощи генератора псевдослучайных чисел. Средняя квадратическая ошибка составляет 10 м. В одном случае погрешности координат имеют нормальный закон распределения, в другом — равномерный. Задача фильтрации решалась при помощи нейронной сети, имеющей 10 нейронов в скрытом слое и 10 единичных задержек входного сигнала, на основе последовательности из 100 предыдущих координат. Данная задача решалась также при помощи адаптивного фильтра Калмана, алгоритм которого реализован в среде Ма1ГаЬ 7. 12.0. Результаты фильтрации представлены в табл. 3.
Выпуск 3
V. МОРСКОГО И РІЧНОГО ФЛОТА ИМЕНИ АДМИРАЛА С. О МАКАРОВА
Таблица 3
Результаты сравнения работы нейронной сети и фильтра Калмана при решении задачи фильтрации
Среднее значение модуля невязки на интервале 10 мин
Ошибка шума, м Ошибка фильтра, м Уменьшение шума, %
Фильтр Калмана нормальное 12,4 8,3 33
равномерное 13,2 8,4 36
Нейронный фильтр нормальное 12,4 8,0 36
равномерное 13,2 7,9 40
Качество работы любого алгоритма фильтрации можно оценивать по наибольшему значению модуля невязки фильтра на интервале наблюдения. «Идеальный фильтр» — алгоритм, для которого величина данного критерия равна нулю. В следующей таблице приводятся ре -зультаты сравнения работы фильтра Калмана и нейронной сети по критерию наибольшей невязки.
Таблица 4
Сравнение работы нейронной сети и фильтра Калмана при решении задачи фильтрации
Наибольшее значение модуля невязки на интервале 10 мин
Ошибка шума, м Ошибка фильтра, м Уменьшение шума, %
Фильтр Калмана нормальное 35,8 24,3 32
равномерное 23,2 22,6 3
Нейронный фильтр нормальное 35,8 21,4 40
равномерное 23,2 19,9 14
Таким образом, в проведенных исследованиях нейронная сеть демонстрирует несколько более точный прогноз координат по сравнению с фильтром Калмана. Так, в случае равномерного распределения погрешностей координат сеть уменьшает наибольшее значение невязки на 11% больше, чем фильтр Калмана.
Ограничением в практическом применении нейросетевого алгоритма следует считать быстродействие ЭВМ, его реализующей. Так, при дискретности модели в 1 с необходимо обучить две нейронные сети за время, не превосходящее 1 с.
Следует отметить, что при разработке нейронной сети остается нерешенной проблема оптимального выбора свободных параметров, числа единичных задержек и количества образцов для ее обучения. Данные параметры зависят от вида траектории движения судна, на которую, в свою очередь, оказывают влияние внешние факторы и физические параметры конкретного судна. В настоящее время выбор параметров сети и числа образцов возможен экспериментальным путем, в частности на основе моделирования движения конкретного судна в условиях воздействия определенных внешних факторов.
Другая проблема относится к процессу обучения. Во-первых, необходимо определиться с выбором алгоритма обучения, при котором скорость и точность обучения будут максимальными. Во-вторых, возникает вопрос о выборе значения функции стоимости, при котором обучение может быть остановлено, а также при котором можно сделать вывод о том, что обучение не состоялось.
BECTHt
ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
МОРСКОГО И РЕЧНОГО ФЛОТА ИМЕНИ АДМИРАЛА С. О. МАКАРОВА
Построенная модель применима для прогнозирования траектории движения любого судна, так как параметры нейронной сети не зависят от физических характеристик судна, а зависят только от вида его траектории. Другими словами, нейронная сеть представляет собой адаптивную систему по отношению к истории движения судна. То есть эта модель не учитывает внешние факторы в явном виде. Особый интерес может представлять нейронная сеть, преобразующая внешние факторы непосредственно в координаты судна. Обучение такой сети будет возможно на образцах, полученных в результате натурных наблюдений. Синтез указанной нейросетевой модели позволит, вероятно, прогнозировать координаты судна с более высокой точностью.
Необходимо отметить, что предлагаемая нейросетевая модель прогнозирования траектории движения может являться лишь составной частью регулятора для всей системы управления движением судна. Она позволяет только прогнозировать координаты места судна и осуществлять их сравнение с координатами, которые определены одним из известных традиционных методов (навигационное и инерциальное счисление или спутниковые навигационные системы). Второй составной частью регулятора всей системы управления движением судна должна быть нейросетевая модель выработки управляющих воздействий для удержания судна (возвращения) на заданной траектории. Между этими нейросетевыми моделями, конечно, существует связь, которая должна быть в последующем учтена при разработке и нейросетевой модели прогнозирования траектории движения судна. Возможно, целесообразно в дальнейшем приступить к формированию единой нейросетевой модели для системы управления движением судна по заданной траектории, приняв за регулируемые величины значения невязок, как по координатам, так и по времени.
1. Дерябин В. В. Модель счисления пути судна в условиях воздействия внешних факторов / В. В. Дерябин // Эксплуатация морского транспорта. — 2011. — № 1 (63).
2. Дерябин В. В. О возможности построения нейронной сети, прогнозирующей координаты судна / В. В. Дерябин // Научно-техническая конференция профессорско-преподавательского состава, научных сотрудников и курсантов: тез. докл. — СПб.: Изд-во ГМА им. адм. С. О. Макарова, 2012. — Ч. 2.
3. Дерябин В. В. Построение модели счисления судна на основе нейронной сети / В. В. Дерябин // Эксплуатация морского транспорта. — 2010. — № 4 (62).
4. Дерябин В. В. Применение нейронной сети в модели счисления пути судна / В. В. Дерябин // Эксплуатация морского транспорта. — 2011. — № 3 (65).
5. Дерябин В. В. О возможности применения нейронной сети при построении модели счисления пути судна / В. В. Дерябин, А. Е. Сазонов // Научно-технический сборник Российского морского регистра судоходства. — СПб.: Российский морской регистр судоходства, 2010. — Вып. 33.
6. Каллан Р. Основные концепции нейронных сетей: пер. с англ. / Р. Калан. — М.: Издат. дом «Вильямс», 2003. — 288 с.
7. Методы робастного нейронечеткого и адаптивного управления. — М.: Изд-во МГТУ им. Н. Э. Баумана, 2002.
8. Хайкин С. Нейронные сети: полный курс: пер. с англ. I С. Хайкин. — М.: Издат. дом «Вильямс», 2006. — 1104 с.
9. Levenberg K. A Method for the Solution of Certain Problems in Least Squares I K. Levenberg II Quart. Appl. Math. — 1944. — Vol. 2.
10. Marquardt D. An Algorithm for Least-Squares Estimation of Nonlinear Parameters I D. Mar-quardt II SIAM J. Appl. Math. — 1963. — Vol. 11.
Список литературы
Выпуск З

ПоказатьСвернуть
Заполнить форму текущей работой