|
Перемещение по декартовой СК |
|
|
Guest_TSerg_*
|
Nov 27 2007, 06:33
|
Guests

|
Цитата(_lukash_ @ Nov 26 2007, 21:01)  А можно немного объяснить по пункту 4 - про интерполяцию и приращение по координатам? Т.е. с самой интерполяцией я разобрался, а как ее здесь применить не оч понял.
ЗЫ Нагуглил по ЧПУ инфы, разбираюсь... Я бы попробовал смоделировать другой вариант, он несколько более "свободный", но и более робастный. Предварительно вычисляется направление движения и и на рекомендуемой линии движения определяются точки переключения разгон-стационар и стационар-торможение. В каждый момент времени определяются текущие координаты X,Y и рассчитываются: - направление на конечную точку - отклонение по траверзу от рекомендованной линии движения; Для следующего шага вырабатывается новый вектор скорости, а имеющееся отклонение устраняется регулятором типа ПИ или ПИД. В случае достижения по одной из координат максимальной скорости или ускорения разгон прекращается.
|
|
|
|
|
Nov 27 2007, 07:02
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(urasinov @ Nov 26 2007, 18:51)  Что нам даст знание косинусов? По-моему гораздо удобнее знать перемещение отдельно по каждой из координат Х и У. Когда известна контурная (общая) скорость. Умножив ее на на косинус получаем приращение по координате. Цитата(TSerg @ Nov 27 2007, 09:33)  Для следующего шага вырабатывается новый вектор скорости, а имеющееся отклонение устраняется регулятором типа ПИ или ПИД. Для программного управления используется П-регулятор, иногда вводится скоростная компенсация с некоторой недокомпенсацией. Это необходимо для отсутствия перерегулирований. ПИ и ПИД используются в копировально-фрезерных станках. Там это необходимо, но требования к люфтам и т.д. здесь намного жестче.
|
|
|
|
|
Nov 27 2007, 07:50
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(TSerg @ Nov 27 2007, 09:33)  Я бы попробовал смоделировать другой вариант, он несколько более "свободный", но и более робастный. Предварительно вычисляется направление движения и и на рекомендуемой линии движения определяются точки переключения разгон-стационар и стационар-торможение. В каждый момент времени определяются текущие координаты X,Y и рассчитываются: - направление на конечную точку - отклонение по траверзу от рекомендованной линии движения; Для следующего шага вырабатывается новый вектор скорости, а имеющееся отклонение устраняется регулятором типа ПИ или ПИД. В случае достижения по одной из координат максимальной скорости или ускорения разгон прекращается. Такой подход, в принципе, правильный. Для системы с ограниченной информацией. Но возможны улучшенные варианты. Автору нужно разобраться с двигателем. Может ли (и хочет ли) он напрямую управлять (измерять по электрическим сигналам, а не с датчика положения) ускорением, скоростью и с какой точностью...
|
|
|
|
|
Nov 27 2007, 16:10
|
Частый гость
 
Группа: Свой
Сообщений: 126
Регистрация: 1-09-07
Из: Винница
Пользователь №: 30 222

|
Значит делаю как TSerg написал: Сначала рассчитываю коэффициент для меньшей координаты. Если случай первый, рассчитываю длины отрезков ускорение/стационар/торможение. Далее перевожу эти длины в количество импульсов от датчика Холла(будет около 30 импульсов на 1 миллиметр) Потом возьму какую-то переменную в качестве счетчика (по переменной на каждую ось, ее перед каждым проездом обнулять буду) и в обработчике прерывания компаратора (по импульсу от датчиков Холла) буду каждый раз ее увеличивать на 1. Там же (в обработчике прерывания) и проверять ее на равность со значениями ускорение/стационар/торможение. Так я узнаю, что пора прекратить разгон, к примеру. И так же для 2-го случая, но там просто ускорение/торможение.
Немного непонятно как мне посчитать отклонение от рекомендованной линии движения. Опять по времени? Еще объясните доступно плз, как прикрутить к этому всему П-регулятор - получается он тоже будет корректировать скорость исходя из времени, или он будет корректировать только конечную точку, в которой нужно остановиться?
И еще один момент – сами расчеты ведутся в одном контроллере, потом он (master) контроллер передает рассчитанные данные в 2 slave МК (на каждый двигатель по МК), после чего master одновременно дает команду на пуск 2 –х двигателей. Во время движения каждый из slave контроллеров НЕ будет знать сколько в данный момент прошел второй slave, т.е. связи между ними не будет. Возможно ли обойтись без привязки по времени в данном случае?
|
|
|
|
Guest_TSerg_*
|
Nov 28 2007, 08:52
|
Guests

|
Цитата(_lukash_ @ Nov 27 2007, 19:10)  Значит делаю как TSerg написал:
Немного непонятно как мне посчитать отклонение от рекомендованной линии движения. Опять по времени? Рекомендованная линия пути (ЛРП) известна, т.к. задана начальной и конечно точками. Текущая точка тоже известна по датчикам перемещения. Далее - обычная геометрия (кратчайшее расстояние от точки до прямой) В качестве примера, реализующего подобный подход, привожу симуляцию. Имеется двухкоординатная система с двигателями пост.тока и датчиками положения (не снижая общности). рис.1
Каждая из подсистем реализована как замкнутая по скорости, т.е. обеспечивается постоянство скорости на рабочем участке. Для демонстрации возможностей работы такой САР в условиях значительной неопределенности введены следующие усложнения жизни. Динамические характеристики разомкнутых систем различаются по динамике и передаточному числу. рис.2
Динамические хар-ки замкнутых систем отличаются качественно - одна имеет апериодический характер, вторая - колебательный. рис.3
В канал скорости по X вводится случайная составляющая, как интеграл от белого шума с катастрофической величиной дисперсии 25% от макс.скорости. рис.4
(синий - результирующая скорость задатчика, красный - шумовой сигнал). Т.е. мы в сигнал задания вводим значительное возмущение без объяснения его природы. На рис.5 приведен график отклонения от ЛРП при работе САР без канала коррекции по отклонению. Как видно, текущую точку значительно уводит и отклонение достигает 2 мм на 100 мм, т.е. 2%
На рис.6 приведен аналогичный график при включенной коррекции. Отклонение не превышает 0.05 мм, т.е. 0.05%
Отключим возмущение по скорости рис.7. Дисбаланс в каналах приводит конечно же к процессу установления, но он быстротечен и невелик, те же 0.05%.
Безусловно, это всего лишь демонстрация возможностей и отнюдь не идеальная. Все регуляторы имеют П-характер, возможно введением иных законов и нелинейностей удасться получить апериодический характер пуска и выхода на ЛРП. Пуск производился на максимальном ускорении, если же делать его плавным, с контролируемым ускорением, то переходной процесс выглядит так - рис.8.
Если же каналы максимально идентичны, то - рис.9 и переходной процесс, скорее всего, будет определятся иными факторами.
Следующим шагом к улучшению показателей может стать введение режима "погоня за фазовой точкой", когда азимут берется не на конечную, а на искусственную движущуюся точку впереди фазовой точки системы. На рис.10 приведена траектория выхода на ЛРП при несовпадающих начальных точках ЛРП и каретки. Т.е. изменили начальные условия X0=0, Y0=-5, XT=0, YT=0
Эскизы прикрепленных изображений
|
|
|
|
Guest_TSerg_*
|
Nov 29 2007, 07:33
|
Guests

|
Цитата(_lukash_ @ Nov 29 2007, 00:32)  Это понял, спасибо. >Но еще один момент - у Вас при симуляции для расчета корректирования берутся показатели датчиков >обратной связи с 2-х двигателей в данный момент. А у меня так не получится – т.е. каждый контроллер >знает данные только своего двигателя. Можно ли брать для каждого контроллера вместо показателей >датчиков 2-го двигателя матем. посчитан "идеальный вариант" движения второго двигателя в данный >момент? >Т.е. мы будем корректировать ошибку каждого двигателя, принимая, что второй движется "идеально", и >также для второго двигателя соответственно? Пожалуй, что - нет. Это связанная система управления. Стабилизация по скорости у каждого канала своя, но траекторные вычисления необходимо делать на основе координат X,Y каретки. Иначе ноги врозь пойдут  >PS А в чем это симулировалось/можно прикрепить проект симуляции чеб самому попробовать? Это VisSim 6.0 ( http://www.vissim.com ) На этом сайте есть также VisSim viewer 4.0 (если нужен проект для просмотра, могу проект выложить) Есть бесплатная версия VisSim 3.0 (с данным проектом могут быть проблемы по совместимости) http://model.exponenta.ru/download.htmlВообще-то, на мой взгляд, попытки создания систем управления удовлетворительного качества без начальных системных расчетов и последующей симуляции - пустая трата времени и сил (средств) Кстати, вышеприведеный проект реализован в аналоговой постановке, но ничто не мешает его выполнить и в цифровой, благо VisSim это позволяет. Справедливости ради скажу, что есть неплохой отечественный симулятор - МВТУ http://mbty.com.ru/
|
|
|
|
|
Nov 29 2007, 19:56
|
Частый гость
 
Группа: Свой
Сообщений: 126
Регистрация: 1-09-07
Из: Винница
Пользователь №: 30 222

|
Возможно, удастся сделать так, чтоб при расчетах использовать и текущею Х, и У. Просто эти МК (которые управляют двигателями) связаны между собой через еще один МК, причем все на одной линии УАРТА. Если это все успеет обмениваться данными вовремя, то все будет хорошо  Там еще скорость каждого двигателя будет регулироваться ПИ-регуляторами, поэтому, возможно отклонение и не будет оч большим без коррекции. Плохо, что еще нет этого собранного станка, и не на чем это испытать. Скачал VisSim, посмотрел примеры, сам опробовал в нем с ПИД разобраться - понравилось  Если не трудно, выложите плз ваш проект, интересно посмотреть. Значит буду пробовать делать связь между МК, и собственно коррекцию по Х и У. Интересно будет посмотреть как это заработает на реальном станке Пока с основными вопросами разобрался, спасибо!
|
|
|
|
Guest_TSerg_*
|
Nov 30 2007, 06:51
|
Guests

|
Цитата(_lukash_ @ Nov 29 2007, 22:56)  Скачал VisSim, посмотрел примеры, сам опробовал в нем с ПИД разобраться - понравилось  Если не трудно, выложите плз ваш проект, интересно посмотреть. Пока с основными вопросами разобрался, спасибо! Выкладываю демо-проект на VisSim v.5.11 P.S. Честно говоря, настолько VisSim удобный инструмент, что не представляю уже как без него  ) В Сети стоит поискать фамилию Клиначев - апологет VisSim-а из Южно-Уральского универа. Кстати, VisSim имеет открытую систему плагинов на основе самописных DLL, а также может работать с внешними устройствами в качестве собственно системы управления.
dc.zip ( 2.84 килобайт )
Кол-во скачиваний: 117
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|