|
Контроллер для BLDC 1 об/сутки, Сверхочный привод |
|
|
|
Dec 2 2009, 11:25
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Всем здрасьте!  Много читаю этот форум, место уникальное. К теме. Мне необходимо разработать привод состоящий из двух осей. На каждой оси будут стоять оптические sin/cos энкодеры с разрешением до 8192000 отсчетов. Почему до? Потому что разрешение можно будет менять изменяя число интерполяции. С энкодером вроде всё ясно. Перейдем к мотору. Задача уйти от шагового двигателя и от промежуточных редукций из-за которых возникает огромный люфт и периодическая ошибка ведения. и вот решили поставить бесколлекторный трехфазный двигатель. Количество полюсов статора 60, число пар полюсов магнитов равно 40, т.е. 80 магнитов. Были сделаны кое какие расчеты и появились заданные параметры. 1) Обеспечить точность позиционирования меньше одной секунды дуги. 2) Обеспечить скорость вращения ротора равной один оборот за звездные сутки. При разрешении энкодера 8192000 отсчетов, точность позиционирования составляет 0,158203125" (секунд дуги). При таких параметрах мотора (60/80) угол поворота статора за период электрического поля равен 360 / 40(пар полюсов) = 9 о. Так как оцифровываться будет либо положительная часть периода либо отрицательная, то полупериод равен 4,5 о. При использовании DACа в драйвере на 16 бит получаем электрическое разрешение: 80 полупериодов * 65536 (16 бит) = 5 242 880. Скорость смены значений ЦАП равна: 5 242 880 / 86164,0905(секунд в звездных сутках) = 60,8476218988233851 Гц. Это самая медленная скорость. Максимальная скорость будет порядка 10-30 градусов в секунду и будет ограничиваться только максимальной рабочей частотой энкодера. Так же должен быть режим удержания, когда ротор просто стоит. Конструкция будет очень точно сбалансирована и будет иметь значительный момент инерции. Ветер будет раскачивать систему, но ПИД регулятор должен удерживать заданную скорость, либо заданную позицию удержания. Так вот вопрос у меня вот в чем. Натолкните на правильный способ управления таким мотором. Мне пока видится один способ. В управлении шаговыми двигателями он называется chopper PWM drive, т.е. запитываем текущую комбинацию, ток в обмотке растет, компаратор сравнивает с опорным, которое формируется 16 битным ЦАПом, и отключает обмотку. Это все повторяется на частоте примерно 20 кГц. Частота будет зависеть от напряжения питания и от индуктивности обмотки. Привожу внешний вид мотора и структурную схему драйвера.
Сообщение отредактировал sergey_ch - Dec 2 2009, 11:48
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 4 2009, 12:30
|
Группа: Участник
Сообщений: 11
Регистрация: 25-11-09
Пользователь №: 53 870

|
Задача интересная. ПИД регулятор не поможет. Он хорош, когда динамика. Просто с ним я работаю 2-3 года и понял, что он может. Пишу для PIC. В разработке данного устройства вы (или кому поручите)напоритесь на дребезг импульсов с энкодера. При наличии сдвинутой последовательности программно вытяните. (Это при очень медленных перемещениях.) В остальном стандартные схемы. В принципе ПИД регулятор поможет только при наводке на объект. Скорость перемещения будет ограничена временем прерывания и обработки импульсов с энкодера. В принципе, цифры названы реальные.
Но алгоритм работы предложу несколько иной. Каждый раз при смене объекта выполнять позицирование (HOME POZICHIN).
Остаётся открытым вопрос , что произойдёт при броске питания. Энкодер не абсолютный, а относительный.
И тогда вы вспомните о механике. Могут ведь делать без люфтов. Точнее могли. Использовал под свои задачи механику военной техники. У каждого времени были свои герои.
|
|
|
|
|
Dec 5 2009, 21:30
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Цитата(Iptash @ Dec 4 2009, 22:00)  Все же ПИД нужен. Также нужен ДПР(датчик положения ротора), двигатель ведь синхронный. А управление лучше делать не аналоговым сигналом, а импульсами, т.е. импульсы задания подаются в реверсивный счетчик и импульсы энкодера подаются в др. реверсивный счетчик, и разность значений этих счетчиков и будет воздействие на двигатель (через ПИД). Частота входных импульсов будет скорость вращения вашего двигателя, т.е. можно реально сделать 1об. в год. Вот именно эта идея у меня пока самая желанная. Цитата Хм.. не знаю как люфт выражен в шаговом двигателе, а в редукторе... Так примените безлюфтовый редуктор. Средней руки механик нарисует. Это будет не дороже, чем сооружать этого 60-полюсного монстра. В шаговом двигателе люфта нет, он в промежуточном редукторе. Причем он очень критичен именно в червячной паре. Требования по точности к червячным парам очень высокие и они получаются дорогие и не доступные. Люфт в общем редукторе и само трение в ЧП (червячных парах) на самом деле очень большие. Именно в этом применении. RMS или периодическая ошибка на выходе портит всю картину. В общем от червячных пар и пром редуктора нам здесь надо не просто уходить, а убегать не оглядываясь. Изучал недавно очень много материалов по управлению двигателями PMSM (3-phase permanent magnet synchronous motor) с синусоидальной коммутацией обмоток. Там основано на ШИМ управлении, но чтобы организовать 16 битный ШИМ на контроллере нужна очень высокая частота. Можно еще сделать аналоговый ШИМ на генераторе треугольных импульсов. В любом случае требования к "чистоте" сигнала очень высокие. Для сейчас самое важное именно как коммутировать синусоиду, чтобы как можно меньше было скачков ???Скажу также что такое уже изготавливается серийно http://www.astrosysteme.at/eng/mount_ddm85.htmlУ них применяется ПИД регулятор для поддержания скорости ведения. Цитата Также нужен ДПР(датчик положения ротора), двигатель ведь синхронный Я не совсем понял зачем нужен ДПР если применяется энкодер. Какое тогда будет разрешение ДПР?
Сообщение отредактировал sergey_ch - Dec 5 2009, 21:32
|
|
|
|
|
Dec 6 2009, 08:50
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Только сдвиг 120 градусов. Кстати синусоиды можно генерировать непосредственно через x=sin(a). Но как я уже говорил, чтобы ШИМ был хотябы 7629 Гц, чего очень мало, тактовая должна быть 500 мГц !!
|
|
|
|
|
Dec 6 2009, 09:12
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Да, все верно... Если точно, то 14 бит, но нужен запас по точности.
Сообщение отредактировал sergey_ch - Dec 6 2009, 09:13
|
|
|
|
|
Dec 6 2009, 12:15
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Мне интересно будет ли такой способ работать с этим мотором? Цитата В управлении шаговыми двигателями он называется chopper PWM drive, т.е. запитываем текущую комбинацию, ток в обмотке растет, компаратор сравнивает с опорным, которое формируется 16 битным ЦАПом, и отключает обмотку. Это все повторяется на частоте примерно 20 кГц. Частота будет зависеть от напряжения питания и от индуктивности обмотки. Так как задавать 16 битный ШИМ это черезчур. А здесь разрядность только у ЦАП. Есть очень хорошие ЦАП 16 битные с последовательным входом. Например LTC1655. Также интересет как правильно снимать ток с обмоток. По идее надо ставить три датчика тока в разрыв каждой фазы. Так же я думаю соединить обмотки звездой и общую точку пустить на землю. А выходные каскады питать биполярным напряжением.
|
|
|
|
|
Dec 6 2009, 12:36
|

Знающий
   
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499

|
Цитата(sergey_ch @ Dec 6 2009, 00:30)  В шаговом двигателе люфта нет, он в промежуточном редукторе. Причем он очень критичен именно в червячной паре. Требования по точности к червячным парам очень высокие и они получаются дорогие и не доступные. Люфт в общем редукторе и само трение в ЧП (червячных парах) на самом деле очень большие. Именно в этом применении. RMS или периодическая ошибка на выходе портит всю картину. В общем от червячных пар и пром редуктора нам здесь надо не просто уходить, а убегать не оглядываясь. Про редукторы. Червячные пары при таких точностях- просто бред, их только в автомобильных дворниках применять..  Если пытаться использовать червячный редуктор- но тогда на выходе должен быть тормозящий фрикцион, и привод должен быть с 10-20- кратным запасом усилия. Есть опыт построения подобной системы, но точность около 10 минут и скорость вращения 0.5-2 гц. а так видится мотор с безлюфтовым редуктором. но все зависит от нагрузок на привод. если у вас был редуктор 1:100, то вам придется увеличивать момент вашего мотора во столько же. получится? Ваш BLDC в данном случае будет очень похож на беззубцовый шаговый мотор в режиме микрошага
|
|
|
|
|
Dec 6 2009, 13:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Цитата(sergey_ch @ Dec 6 2009, 00:30)  ... Я не совсем понял зачем нужен ДПР если применяется энкодер. Какое тогда будет разрешение ДПР? Потому что, привод аппаратно должен знать в каком положении находится ротор, это допустим три датчика соорентированные по фазе и распределенные по 120 град., это будет обсалютный ДПР, а энкодер это обратная связь по скорости или положению, как хотите. Возможно многоразрядное ШИМ лучше сделать на ПЛИС, у них быстродействие достаточное, и сделать там не сложно и память есть, А ПРЦ для распределения задач и вычеслений. Я примерно так на асинхронники собираюсь делать.
|
|
|
|
|
Dec 6 2009, 13:33
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Цитата(Serj78 @ Dec 6 2009, 15:36)  Про редукторы. Червячные пары при таких точностях- просто бред, их только в автомобильных дворниках применять..  Если пытаться использовать червячный редуктор- но тогда на выходе должен быть тормозящий фрикцион, и привод должен быть с 10-20- кратным запасом усилия. В таких монтировках стоят именно червячные пары, другого просто ничего не придумали. Фрикцион там есть, только применяется в качестве защиты, чтобы не свернуть зубья. Модуль от 0,5 до 1. Зубов от 144 до 360. Промежуточная редукция от 3 до 120. В данном проекте мы не рассматриваем вообще никакую редукцию. А безредукторная, безлюфтовая и без трения система уже совсем другого, HIEND класса. Многие наши покупатели просто мечтают о такой монтировке. Как известно шаговик на большой скорости теряет момент, а чтобы поворачивать ось на скорости 800х от звездной требуется огромная частота. Номинальная скорость поворота всего 4-8 градуса в секунду. Микрошаг(64х) они держат плохо. А мы на бесколлектронике можем хоть до 100 градусов вертеть. Цитата Потому что, привод аппаратно должен знать в каком положении находится ротор, это допустим три датчика соорентированные по фазе и распределенные по 120 град., это будет обсалютный ДПР, а энкодер это обратная связь по скорости или положению, как хотите. Возможно многоразрядное ШИМ лучше сделать на ПЛИС, у них быстродействие достаточное, и сделать там не сложно и память есть, А ПРЦ для распределения задач и вычеслений. Я примерно так на асинхронники собираюсь делать. Это в принципе понятно, но почему энкодер не может служить датчиком положения ротора, не пойму никак? У энкодера на выходе будет квазиабсолютное положение, с точностью 0,158241" Какие еще варианты коммутации кроме ШИМ? Тот способ , который я предложил реален?
|
|
|
|
|
Dec 6 2009, 16:56
|

Знающий
   
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499

|
Цитата(sergey_ch @ Dec 6 2009, 16:33)  В таких монтировках стоят именно червячные пары, другого просто ничего не придумали. Фрикцион там есть, только применяется в качестве защиты, чтобы не свернуть зубья. Модуль от 0,5 до 1. Зубов от 144 до 360. Промежуточная редукция от 3 до 120. В данном проекте мы не рассматриваем вообще никакую редукцию. А безредукторная, безлюфтовая и без трения система уже совсем другого, HIEND класса. Рассмотрите аналоги. Они используют прямой привод? При движении на такие микроположения прямой привод будет себя вести аналогично микрошагу с точки зрения управления. Еще раз обращаю ваше внимание на необходимый момент, в N раз больший ( до 120) кстати, может возможен вариант BLDC + редуктор? Далее, для изменения положения на 0.1 угловую секунду не обязательно иметь дискретность установки тока такой большой разрядности. Все зависит от постоянной времени привода (момента инерции). При достаточной частоте работы петли управления можно реализовать что-то типа фазового детектора, сама механическая часть может служить фильтром.
|
|
|
|
|
Dec 6 2009, 17:51
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Насчет обычных монтировок с червячными парами. Имеем червячную пару, промежуточный редуктор и шаговый или ДПТ. Промежуточный редуктор может быть шестеренчатый или ременный. Вот и все что применяют по всему миру все производители монтировок для телескопов. И те которые по 100 долларов и те которые по 15000. Отличается только качество исполнения. Недостатки я уже указывал. И вот стали появляться монтировки с прямым приводом. В них прменяют PMSM и возможно пьезомоторы. Плюсы я так же перечислял. Что за безлюфтовая передача, честно незнаю. Хотя мы разрабатываем и производим монтировки давно и много. Модели считаются высокого класса и довольно дороги. Теперь мы осваиваем новые технологии, поэтому возвращаться к каким либо редукторам не имеет никакого смысла, так как все это уже есть и выходит довольно неплохо. Периодическая ошибка ведения +/- 2-3" Вот к чему мы теперь стремимся. (см фото)И обсуждать хотелось бы только вопросы касающиеся данного мотора и систему управления им. То что мотор будет работать по сути как шаговый в микрошаге это уже уяснил. Все еще пытаюсь точно высчитать момент который необходим для правильной работы. И про дискретность гораздо меньшую чем 16 бит я думал, теперь стал понимать что это действительно так. момент инерции будет огромный, на валу будет висеть порядка 20-30 кг  Цитата(Iptash @ Dec 6 2009, 18:55)  Конечно можно, но усложняются пересчеты, и надо что бы счетчик энкодера сохранялся после выкл. пит. и мне такие варианты просто не нравятся  С какой точностью ДПР должен определять положение?
Сообщение отредактировал sergey_ch - Dec 6 2009, 17:52
|
|
|
|
|
Dec 6 2009, 18:54
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Балансировка выполняется электронным способом. Мотор вращается в одну и другую сторону попеременно и измеряется ток. При разности значений выдается поправка на смещение противовеса. Думаю стоит попробовать подавать 10 битный ШИМ. Вот эта идея мне понравилась: Цитата(Serj78 @ Dec 6 2009, 19:56)  Далее, для изменения положения на 0.1 угловую секунду не обязательно иметь дискретность установки тока такой большой разрядности. Все зависит от постоянной времени привода (момента инерции). При достаточной частоте работы петли управления можно реализовать что-то типа фазового детектора, сама механическая часть может служить фильтром.
Сообщение отредактировал sergey_ch - Dec 6 2009, 18:55
|
|
|
|
|
Dec 6 2009, 19:21
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Так 30 килограмм не "мягкий" элемент?  С таким весом "оно" разгонятся только будет с пол минуты до полной скорости 10-20 градусов в секунду.
|
|
|
|
|
Dec 6 2009, 19:30
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Цитата(Iptash @ Dec 6 2009, 22:20)  Вот здесь немного есть для понятия. А так лучше взять док. промышленных вентельных приводов(к сожелению у меня нет). Спасибо большое, это было прочтено очень давно. Гораздо интереснее набрать в поиске "3-phase permanent magnet synchronous motor (PMSM) using a sinusoidal commutation scheme". А точнее отправляться сразу сюда: http://www.cyantechnology.com/public/AN062...sorFeedback.pdfНа этом сайте еще много апноутов подобных, с датчиками и без. Цитата(Microwatt @ Dec 6 2009, 22:28)  1. Так узнайте в каком-нить справочнике конструктора, тем более, что занимаетесь вопросом давно. Всего-то делов - две шестерни и пружина вместо одной. 2. Все новое - хорошо забытое старое. Прямоприводный двигатель - крайне сложная и дорогая констукция. Это они там с жиру беситься могут. Тут имеет сысл сделать что-то практичнее. Вопрос с редукторами закрыт  Уже все сделано, я ж уже писал.
Сообщение отредактировал sergey_ch - Dec 6 2009, 19:30
|
|
|
|
|
Dec 6 2009, 19:41
|
Гуру
     
Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741

|
Энкодер на 81920000 это что за чудо? Если со встроенным редуктором, то у него тоже люфты будут при смене направления в процессе удержания точки. Система дрожать будет на величину люфта. А если у него пружины встроенные для выборки люфта, то проверяйте обязательно на мех резонансы,и учитывайте эти частоты в петле. Угловые секунды ловить неприходилось, а вот угловые минуты ловили так- на валу стояла многогранная призма, на нее светил п/п лазер, отраженка от призмы попадала на сканерную CCD линейку. Призма имела 180 граней, т.е в пределах 2 градусов отсчет шел по CCD, а более грубо- обычным енкодером. CCD была 1000 с чем то элементов, но пятно лазера засвечивало 6-8 пикселей. В те времена процессоры были слабы, а то можно было бы поднять точность, измеряя амплитуды по пятну и фитовать гауссовским распределением. АРМ справился бы, но тогда его несуществовало. CCD считывалось каждую миллисекунду. Ну а дальше ПИД итд. Моторчик у нас был обычный постоянного тока, только с легким ротором. Червячная передача безлюфтовая хорошо делается с подвижным мотором- узел мотора и червяка имеет дополнительную ось вращения где-то в районе мотора, параллельную оси шестерни. Это все прижимается пружиной к шестерне за протвоположный от мотора конец червяка. Люфтов нет, выработки износа компенсируются итд.
|
|
|
|
|
Dec 6 2009, 20:26
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Какой редуктор??? Это оптический sin/cos энкодер. 8 192 000 это еще мало... Так же скажу, что никакую выборку люфта в монтировках для телескопов не применяют, не работает там она. Червяк зафиксирован очень жестко. Один раз выставил затянул и до следующего раза. Вот еще док мощный Direct Torque Control of PMSMПравда сильно перегружен формулами. По этим ключевым словам находится много интересного.
Сообщение отредактировал sergey_ch - Dec 6 2009, 20:01
|
|
|
|
|
Dec 7 2009, 08:10
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Спасибо большое, и вообще всем спасибо за поддержку. Я буду переходить от расчетов к изготовлению мотора. Много было просимулировано в протеусе и ему подобных. Магниты куплены, микросхемы для энкодера куплены: http://www.ichaus.de/product/iC-NQ осталось найти электротехническую сталь подходящую, по ее параметрам подобрать плотность тока. Оси делают другие люди. Устройство делаем на базе вот этого, ранее произведенного продукта http://www.astromagazin.net/product_info.php?products_id=840
|
|
|
|
|
Dec 7 2009, 11:56
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
У нас энкодер, точнее кольцо энкодера одно целое с ротором двигателя. Диаметр ротора с магнитами 140мм. С начала я сделал ротор снаружи ротора, но чтобы уменьшить габариты решил сделать статор внутри ротора. Разрешающая способность энкодера называется периодической ошибкой и она действительно больше точности самого энкодера. Поэтому и надо закладывать большее разрешение хотя-бы в десять раз. Привожу эскиз, когда статор еще был снаружи. и 3D внешний вид:
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 7 2009, 13:29
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Хорошо, буду пробовать. Для начала хочу накидать на ATTINY 861, у нее три высокочастотных таймера на 64 мГц PLL.
|
|
|
|
|
Dec 7 2009, 14:56
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Меня все еще интересует как именно подавать синусоиду. В виде чистого ШИМа или как я уже писал несколько раз, в виде chopper ШИМ ???
Второй вариант позволяет контролировать ток в зависимости от нагрузки. И ШИМ как таковой ему не требуется, только опорное с ЦАПа. Я сейчас попробую выложить графики с моделирования в Протеусе.
Сообщение отредактировал sergey_ch - Dec 7 2009, 14:58
|
|
|
|
|
Dec 7 2009, 15:37
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Поверхность будет не стеклянная. Юстировка вещь очень хорошая, спасибо за подсказку. Но будет ли от нее толк, ведь там смещения должны быть в пределах единиц микрон, как ее осуществить. Принцип энкодера будет такой: на поверхности кольца нанесены риски с заполнением 50/50, пока определено их число 1000. Светодиоды подсвечивают шкалу, изображение проходит через четыре фазовые решетки, где получается перекрытие 0 / 90 / 180 / 270. Плюс в контроллере датчика применяется автокалибровка. Т.е. исходя из этого можно определить допустимые погрешности. В таких энкодерах я не встречал юстировки.
|
|
|
|
|
Dec 7 2009, 17:25
|

Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913

|
Цитата(sergey_ch @ Dec 7 2009, 18:37)  Но будет ли от нее толк, ведь там смещения должны быть в пределах единиц микрон, как ее осуществить. Принцип энкодера будет такой: на поверхности кольца нанесены риски с заполнением 50/50, пока определено их число 1000. Светодиоды подсвечивают шкалу, изображение проходит через четыре фазовые решетки, где получается перекрытие 0 / 90 / 180 / 270. Плюс в контроллере датчика применяется автокалибровка. Т.е. исходя из этого можно определить допустимые погрешности. В таких энкодерах я не встречал юстировки. Юстируют просто. Крутят мотор и добиваются что бы были максимальные амплитуды синуса и косинуса, отсутствовала постоянная составляющая в обоих сигналах и сдвиг был 90 градусов. Потом хорошо было бы его проверить на каком нибудь угломерном приборе например на гониометре и составить корректировочную таблицу. Освещение должно быть коллимированное. Z 1000 для такого энкодера очень мало. Для похожего разрешения у меня используются энкодеры с z= 40000 диаметром 200 миллиметров. Цитата(sergey_ch @ Dec 7 2009, 18:37)  Светодиоды подсвечивают шкалу, изображение проходит через четыре фазовые решетки, где получается перекрытие 0 / 90 / 180 / 270. Посмотрите как устроены энкодеры у немцев http://www.heidenhain.com/en_US/fundamenta...ing_principles/
|
|
|
|
|
Dec 7 2009, 18:32
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 16-11-09
Пользователь №: 53 654

|
Опять за рыбу гроши... Почему 1000? 1000 * 8192 = 8 192 000. Как устроены энкодеры heidenhain я знаю, так как пользую энкодеры Renishaw. Читайте пожалуйста все сообщения внимательно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|