реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Сервопривод на коллекторном моторе., Нуждаюсь в практических советах о методах реализации.
IgorTT
сообщение Mar 7 2014, 15:15
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 14-05-10
Пользователь №: 57 261



Добрый день.
Сразу хочу сказать что опыта работы с подобными проектами ранее не имел вообще. (ТАУ)
Да и в программировании я особо не силен (если откровенно).
Решил попробовать реализовать управление, неким сервоприводом своими силами, но увы, оказалось знаний катастрофически не хватает.
А понимание того что ТАУ надо было все таки учить в институте пришло только сейчас.
Хочу сразу сказать что этот проект не коммерческий, а носит только образовательный характер. И большое желание реализовать его правильно.
Лирическое вступление окончено теперь о ТЗ.
Есть некий механизм (исполнения сименс) представленный на фото1.
Прикрепленное изображение

Коллекторный мотор постоянного тока на 12вольт (см. пдфку)
Прикрепленный файл  DC_Motor_31_x_75_1.13.021.6XX.pdf ( 394.76 килобайт ) Кол-во скачиваний: 361

Трехступенчатый шестеренчатый редуктор передаточным соотношением 2:1.
Прикрепленное изображение

На выходном валу сидит червячная пара (ходовой винт + ходовая гайка).
Ходовая гайка посредством пальца *тягает за собой* поворотный рычаг (поступательное движение переходит во вращательно) на оси вращения рычага с одной стороны приклеен круговой магнит (для холла)
Прикрепленное изображение

,с другом соединительная муфточка для сопряжения с валом.
На выходном валу находится некое *программное колесо (так называю в народе) на фото есть*

Прикрепленное изображение

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

Трудность с которой я столкнулся это быстро остановиться в заданной точке без недолёта или перелёта. Я попытался реализовать подобие ПИ регулятора и настроил его таким образом, что доход до точки становился вялым и не всегда точка остонова была в разрешенных воротах. При условии когда возникало внешнее воздействие (легкое удержание пальцем) у системы был недолёт, остановка, и только потом интегральная часть наращивала воздействие. Для каждого из рабочих перемещений (а их 9ть) были подобраны Кр и Кд, одним из минусов считаю напряжение с датчика холла, оно не линейно. Решив реализовать правильное определения угла (требуются операции с плавающей точкой и double ) понял что 8 битного пика мало. Решил взять 16 бит пик. А также стал вопрос что надо попросить помощи на форуме. Для выбора правильного метода управления.
На фото видна родная плата управления я решил её оставить, выпаял аккуратно родной ST10F269-T3. На переходнике впаял туда свой пик.
На родной плате есть возможность управлять двигателем (Н-мост), измерять ток мотора, напряжение противо-эдс и угол поворота.
Также прилагаю осциллограмму тока и скорости мотора на которой видно как происходит огибание зубов.
Прикрепленное изображение

Прошу прошение за сыр бор в объяснениях о механизме полагаю всё можно скомпенсировать фотографиями sm.gif
Всем откликнувшимся спасибо.
Go to the top of the page
 
+Quote Post
amaora
сообщение Mar 8 2014, 14:07
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778



Быстрее всего будет если дать максимальный ток, а перед остановкой сменить ему знак. Я бы начал с ПД регулятора с большой пропорциональной частью, так чтобы была лишь небольшая линейная область (на уровне требуемой точности), а основная работа шла в насыщении. Д проше всего подобрать наблюдая переходный процесс при торможении. Ток тоже полезно регулировать, чтобы использовать максимальный момент без опасности превысить максимально допустимый ток.

Кстати пульсирующий момент нагрузки (как я понял из текста и картинок) дает интересную возможность оценки/отслеживания положения без датчика положения.
Go to the top of the page
 
+Quote Post
IgorTT
сообщение Mar 11 2014, 06:06
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 14-05-10
Пользователь №: 57 261



Добрый день.
amaora спасибо за ответ.
Не знаю правильно ли я вас понял .
Пропорциональную часть берем с большим запасом, что бы по мере приближения к цели (уменьшение ошибки) воздействие не сводилось к нулю. Правильно?
По поводу дифф. части у меня немного непонимание. Я начал разбираться с управлением прочитав вот эту статью:
http://we.easyelectronics.ru/Theory/pid-re...-praktikov.html
Используя вот эти формулы:
u(t) = P (t) + I (t) + D (t);
P (t) = Kp * e (t);
I (t) = I (t — 1) + Ki * e (t);
D (t) = Kd * {e (t) — e (t — 1)};
В моем понимании дифф. часть (не накапливается как интегральная ) а воспроизводит как бы *тормозящий эффект* на суммарное воздействие.
Правильно ли я понимаю?
И еще вопросик,а как правильно выбрать (рассчитать, подобрать) момент начала торможения?
Из вашего совета я понял что тормозить надо противовключением?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 11 2014, 07:57
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(IgorTT @ Mar 7 2014, 19:15) *
хочу сказать что пружина очень жесткая.
понял что 8 битного пика мало. Решил взять 16 бит пик.

Пружина - это хорошо.
А поняли Вы неправильно.
Вам еще надо бы поставить шунт для измерения тока. И поискать по форуму.
Такое много раз уже обсуждалось.
Go to the top of the page
 
+Quote Post
IgorTT
сообщение Mar 11 2014, 10:18
Сообщение #5





Группа: Новичок
Сообщений: 6
Регистрация: 14-05-10
Пользователь №: 57 261



Цитата(Tanya @ Mar 11 2014, 09:57) *
Пружина - это хорошо.
А поняли Вы неправильно.
Вам еще надо бы поставить шунт для измерения тока. И поискать по форуму.
Такое много раз уже обсуждалось.

По поводу 8 бит пика
Время перемещения между позициями на 50% мощности составляет 100 мс.
А время измерения и расчета угла 3,1 мс. А еще расчет воздействия и скорость на 100% мощности , вот из этих выводов я понял что необходимо 16 бит. да по шустрее. Я могу ошибаться и хотел бы узнать где я не прав.
Балластный резистор стоит я же привёл диаграмму тока.
Все 23 страниц я просмотрел.
А чем пружина хорошо?
Спасибо.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 11 2014, 12:20
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(IgorTT @ Mar 11 2014, 14:18) *
А время измерения и расчета угла 3,1 мс. А еще расчет воздействия и скорость на 100% мощности , вот из этих

Все 23 страниц я просмотрел.

А чем пружина хорошо?

Почему и что Вы так долго измеряете?
Какие Вы посмотрели страницы, непонятно.
Пружина хороша тем, что создает точку равновесия. Если она там, где я ее придумала.
А шунт нужен для того, чтобы управлять током, а не напряжением... ШИМом или как-нибудь еще. Момент ведь пропорционален току. А напряжению мешает противоэдс.
Go to the top of the page
 
+Quote Post
amaora
сообщение Mar 11 2014, 13:29
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778



IgorTT
Для избавления от таких вопросов полезно будет попробовать численно моделировать (в matlab, в C, можно даже на бумаге) двойной интегратор, добавить обратную связь и смотреть на фазовые траектории.
Go to the top of the page
 
+Quote Post
IgorTT
сообщение Mar 12 2014, 04:41
Сообщение #8





Группа: Новичок
Сообщений: 6
Регистрация: 14-05-10
Пользователь №: 57 261



Добрый день.
Цитата(Tanya @ Mar 11 2014, 14:20) *
Почему и что Вы так долго измеряете?

два измерения АЦП занимают 50мкс.
Все остальное расчет угла тета.
Прикрепленный файл  APS00B_PS.pdf ( 601.91 килобайт ) Кол-во скачиваний: 340


amaora
буду разбираться, спасибо.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 12 2014, 05:25
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(IgorTT @ Mar 12 2014, 08:41) *
Добрый день.

два измерения АЦП занимают 50мкс.
Все остальное расчет угла тета.

А почему так долго? Таблицы не используете?
Могу Вам еще посоветовать. Для перескока из одного состояния в другое включаете мотор на полную и интегрируете ток до табличного значения. Потом включаете ПИД. С интегральным членом из таблицы.
Если поставить еще один простой датчик до редуктора?
Go to the top of the page
 
+Quote Post
Herz
сообщение Mar 12 2014, 05:32
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(IgorTT @ Mar 12 2014, 06:41) *
Добрый день.

два измерения АЦП занимают 50мкс.
Все остальное расчет угла тета.

Просто невероятно долго. Что за ПИК, частота, алгоритм? Уверен, что никакого 16-разрядного не нужно.
Go to the top of the page
 
+Quote Post
IgorTT
сообщение Mar 12 2014, 07:23
Сообщение #11





Группа: Новичок
Сообщений: 6
Регистрация: 14-05-10
Пользователь №: 57 261



Цитата(Herz @ Mar 12 2014, 07:32) *
Просто невероятно долго. Что за ПИК, частота, алгоритм? Уверен, что никакого 16-разрядного не нужно.

Поигравшись настройками, время одного преобразования снизилось до 8мкс .
Но меня больше волнует вот эта функция:
double atan (double x);
потом для удобства я перевожу из радиан в угол.
и всё это занимает около 2мс.
мк. PIC18F4680,OSC=32MHz.
По поводу алгоритма немного не понял? Что именно надо laughing.gif
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 12 2014, 07:39
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(IgorTT @ Mar 12 2014, 11:23) *
double atan (double x);
потом для удобства я перевожу из радиан в угол.

Что Вы во что переводите и зачем?
А Вы нарисуйте эту функцию на бумаге...
Go to the top of the page
 
+Quote Post
IgorTT
сообщение Mar 12 2014, 07:58
Сообщение #13





Группа: Новичок
Сообщений: 6
Регистрация: 14-05-10
Пользователь №: 57 261



Цитата(Tanya @ Mar 12 2014, 09:39) *
Что Вы во что переводите и зачем?
А Вы нарисуйте эту функцию на бумаге...

Для определения положения (угол тета) по датчику холла необходимо решить вот это:
VoutA = Vs*S*sin(2θ) + VosA,
VoutB = Vs*S*cos(2θ) + VosB
для решения необходимо взять arctan отношения напруг.
в добавок результат я получаю в радианах , перевожу в градусы.
Я ещё точно не определился с какой точностью необходимо получать результат :град,минут,секунд или еще точнее.
аргумент функции меняется в пределах: 0,61 - 40,66
А можете объяснить по поводу бумаги?
Вы имеете в виду пересчитать вручную и построить таблицу? Или я опять не правильно всё понял?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 12 2014, 08:40
Сообщение #14


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(IgorTT @ Mar 12 2014, 11:58) *
аргумент функции меняется в пределах: 0,61 - 40,66
А можете объяснить по поводу бумаги?
Вы имеете в виду пересчитать вручную и построить таблицу? Или я опять не правильно всё понял?

На бумаге видно, что максимальная производная меньше единицы - медленно меняется - легко аппроксимируется. Еще легче - кусочно. Вам же нужны какие-то фиксированные точки финиша?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 18:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01481 секунд с 7
ELECTRONIX ©2004-2016