Автор: presta Тема: Re: Простой сервоконтроллер Часть 3  (Прочитано 70312 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн As Александр Иванович

  • Основатель
  • Ветеран
  • *****
  • Сообщений: 683
  • Карма: +6/-0

  • Активность
    0%
  • Возраст: 54
  • Место жительства: Новосибирск
Re: Re: Простой сервоконтроллер Часть 3
« Прикреплённый пост : 11 Январь 2014, 11:28:17 »
тем временем немного победил сервоконтроллер.

Не понятно про что вы пишите.

Про Открытый проект сервоконтроллера для BLDC? Так какое отношение к теме он имеет?

Отделил вам тему по этому проекту.
===========================================================================
ВСЕМ! Когда вы пишите типа сделал, победил, выполнил, пишите что именно вы сделали, по какой версии платы и хорошо бы показать на фото.

Иначе тут будет каша, в которой вряд ли кто будет разбираться.
===========================================================================
  • Нет
  • Софтовая

Оффлайн Propovednik (Иван)

  • Спонсоры
  • Старожил
  • *****
  • Сообщений: 260
  • Карма: +6/-0

  • Активность
    0.2%
  • Возраст: 34
  • Место жительства: Ворсма
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #210 : 04 Февраль 2017, 13:06:54 »
Вячеслав ой как я вас понимаю. По схеме драйверов и схеме сервы тут. http://master.i4.ru/index.php/topic,485.75.html  пост 84.
Вы спрашиваете как PID щитается, я не уверен что он вообще щитается :). Я тут за прошивку сел, 3 дня разбирался че я там напрограмил, кое как разобрался.  Пропорциональное управление точно есть. У меня наверное не как у вас сделано, у меня принцип поддержания скорости и положения заключается в отслеживании скорости как в осцилографе, пропорциональная натяжка, и торможение. Причем торможение с определенного растояния, с такого что бы мог остановится в нуле при максимальном шиме. Но видимо у александра слишком большой момент инерции и уж слишком малый ток двигателя. Да коэффициенты жостко зашиты вот сейчас ломаю голову с автоматической настройкой. Программист из меня никакой да и посоветоватся нескем поэтому все это не быстро будет. И вы правы что как бы нужно настраивать на максимальную инерцию, но и жосче можно сделать если дополнительно использовать допустим в МАЧ плавное ускорение и торможение. Вы же согласны что мгновенно разогнатся и затормозить нельзя в силу действия сил инерции. Да похоже я подогнал коэффициенты под свой двигатель и ток, и  у меня как бы работает четко, да и я согласен что с другими движками это может не прокатить в силу разности инерции и тока управления. Поэтому как бы и задумался что бы автоматическая настройка учитывала индивидуальность каждой отдельной системы и подганяла коэффициенты под систему. Пусть движок будет медленно вставать в ноль или еще что то, но это же будут крайние положения для даного двигателя и тока.
 Частоту я действительно не могу поднять из за ацп входного и выходного сигнала, но учитывая что скорость вращения двигателя у меня 3000 об/м , и программа обеспечивает эту скорость то по мне этого достаточно. И на таких скоростях все равно резать не будешь. Конечно и энкодер у меня на 100 линий. Да че тут говорить вашь вариант все равно лучше.
  • Да
  • Электронщики

Оффлайн s13

  • Разработчики
  • Старожил
  • *******
  • Сообщений: 329
  • Карма: +12/-0

  • Активность
    0%
  • Возраст: 42
  • Место жительства: Саратовская обл.
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #211 : 04 Февраль 2017, 14:57:29 »
По схеме драйверов и схеме сервы тут. http://master.i4.ru/index.php/topic,485.75.html  пост 84.
Вот там и не могу посмотреть :)
принцип поддержания скорости и положения заключается в отслеживании скорости как в осцилографе
Озадачили.. всю жизнь с осциллографами, а где там скорость до сих пор не в курсе ;) Скорость легко вычисляется как разница положений за определённый промежуток времени (обычно 1мс).
пропорциональная натяжка, и торможение. Причем торможение с определенного растояния, с такого что бы мог остановится в нуле при максимальном шиме.
Если при этом учитывается текущая скорость, то этим и занимается дифференциальная составляющая.
Но видимо у александра слишком большой момент инерции и уж слишком малый ток двигателя.
Видимо просто не подходит под Ваши параметры, в том и загвоздка обычно.
сейчас ломаю голову с автоматической настройкой.
Посмотрите на метод Cohen Coon: http://www.chem.mtu.edu/~tbco/cm416/cctune.html в принципе реально посчитать, но как это для сервы подойдёт ещё вопрос.
Программист из меня никакой да и посоветоватся нескем поэтому все это не быстро будет.
а форум на что ? для этого и собираются люди в группы.
И вы правы что как бы нужно настраивать на максимальную инерцию, но и жосче можно сделать если дополнительно использовать допустим в МАЧ плавное ускорение и торможение.
Вы же согласны что мгновенно разогнатся и затормозить нельзя в силу действия сил инерции.
Зажим скоростей разгона и торможения через mach - это уже следствие после настройки чтобы серва успевала за заданием, а никак не источник ограничений скорости и моментов.
Да че тут говорить вашь вариант все равно лучше.
  У меня пока что нет своего варианта, я просто сейчас пытаюсь собрать всё лучшее из всех проектов что нашел, и надеюсь на поддержку форума.
  • Да
  • Электронщики

Оффлайн Propovednik (Иван)

  • Спонсоры
  • Старожил
  • *****
  • Сообщений: 260
  • Карма: +6/-0

  • Активность
    0.2%
  • Возраст: 34
  • Место жительства: Ворсма
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #212 : 04 Февраль 2017, 15:13:01 »
Да наверно с осцилографом я что то перемудрил. Короче работает у меня таймер и щитает импульсы. Как только произошло прерывание входного или выходного сигнала количество нащитанных импульсов записывается в буфер. И по количеству импульсов входного и выходного сигнала я делаю сравнение и из этого сравнения определяется что быстрее или медленнее и по этому результату программа принимает меры по выводу на рабочую скорость или точку.
Я конечно извиняюсь а кто кроме вас меня тут может проконсультировать?
  • Да
  • Электронщики

Оффлайн s13

  • Разработчики
  • Старожил
  • *******
  • Сообщений: 329
  • Карма: +12/-0

  • Активность
    0%
  • Возраст: 42
  • Место жительства: Саратовская обл.
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #213 : 04 Февраль 2017, 21:30:53 »
Как только произошло прерывание входного или выходного сигнала количество нащитанных импульсов записывается в буфер. И по количеству импульсов входного и выходного сигнала я делаю сравнение
  Мудрено, но смысла так изголяться нет. То что у Вас на выходе этого действа - просто рассогласование от нужной позиции, причем скорость вы скорее всего определяете прямо по количеству импульсов или обратно пропорционально изменениям значений таймера.  Эти значения находятся другим способом, всё гораздо проще. На рисунке ниже "волшебный" :) алгоритм, который к сервам подходит лучше остальных :), Именно он избавляет сервострап от детских болезней, и именно в таком порядке должны действовать обратные связи и коэффициенты. Этот вариант отработки скоростей и рассогласований пока что оправданно в моих фаворитах, и позволяет настроить систему на любой движок. Раньше настройка параметров была затруднительна, а теперь на это уходит несколько минут. Если у кого есть схема лучше предлагайте.
  • Да
  • Электронщики

Оффлайн Propovednik (Иван)

  • Спонсоры
  • Старожил
  • *****
  • Сообщений: 260
  • Карма: +6/-0

  • Активность
    0.2%
  • Возраст: 34
  • Место жительства: Ворсма
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #214 : 04 Февраль 2017, 21:54:23 »
Ну там конечно еще всякого наворочено, но похоже. Чесно говоря я смотрю на вашу картинку как абориген на смартфон.
  • Да
  • Электронщики

Оффлайн s13

  • Разработчики
  • Старожил
  • *******
  • Сообщений: 329
  • Карма: +12/-0

  • Активность
    0%
  • Возраст: 42
  • Место жительства: Саратовская обл.
Re: Простой сервоконтроллер Часть 3
« Ответ #215 : 05 Февраль 2017, 05:00:04 »
 Ну что господа тестеры и разработчики, предлагаю на пробу гибрид интерфейса Мисана и алгоритма Чена. Шьём мегу8, все сигналы и ноги как были раньше в 4.7, еепром шить не нужно. В архиве две прошивки: одна 100% шим, вторая 98% для тех у кого полевики, файл помощи по командам управления с терминала (не влез хелп в код), и немного подправленный скетч для процессинга. Ждём первого кто прошьёт, подключит мотор и терминал. Дальше будем помогать в настройке. Если несколько человек захотят тестить, будет ещё лучше. После запуска серва моргнёт сервоошибкой и выдаст приветствие через компорт на скорости 115200. После этого попытается считать параметры из еепром, напишет что ошибка и включит стартовые минимальные.  Проверить что движок упирается и перемещается с ними уже можно. Когда параметры будут уже настроены будет выдавать типа этого:
Mega8_dcservo v0.1
Master.i4.ru forum test version
Available commands: PIDV?XTQRWHA
*** Found PID values on EEPROM
P=6.00 I=0.40 D=21.00 V=550.00

Ждём тестеров...
  • Да
  • Электронщики

Оффлайн As Александр Иванович

  • Основатель
  • Ветеран
  • *****
  • Сообщений: 683
  • Карма: +6/-0

  • Активность
    0%
  • Возраст: 54
  • Место жительства: Новосибирск
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #216 : 06 Февраль 2017, 10:06:27 »
Не знаю, китаец наверное вам схему выложил http://i4.ru/index.php/topic,618.msg12301.html#msg12301 свою.
Оцените.
  • Нет
  • Софтовая

Оффлайн Propovednik (Иван)

  • Спонсоры
  • Старожил
  • *****
  • Сообщений: 260
  • Карма: +6/-0

  • Активность
    0.2%
  • Возраст: 34
  • Место жительства: Ворсма
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #217 : 07 Февраль 2017, 00:54:59 »
Вячеслав подскажите как программист неучу. Конечно немного не по теме ну все же. Подскажите как правильно организовать счет на таймере. У меня таймер1 у мега8 задействован под шим. Свободен нулевой и второй. Подскажите как организовать счет импульсов для измерения скорости так что бы не сильно напрягать основную программу. Или подскажите как по другому скорость измерить. Но как вы сказали за 1мкс что то мне не очень нравится.
  • Да
  • Электронщики

Оффлайн s13

  • Разработчики
  • Старожил
  • *******
  • Сообщений: 329
  • Карма: +12/-0

  • Активность
    0%
  • Возраст: 42
  • Место жительства: Саратовская обл.
Re: Простой сервоконтроллер Часть 3
« Ответ #218 : 07 Февраль 2017, 10:08:51 »
  Иван, я не могу назвать себя программистом, я такой же любитель как и многие. Сделать счёт энкодера на таймере можно только если есть аппаратная поддержка этого как в stm8 и stm32..  На простых мегах используется вариант с прерываниями, причем по обоим входам энкодера.(int0,int1) таймер0 задействован для счёта шагов, таймер1 для шим, таймер2 для прерывания на сервоцикл. Сегодня покажу все исходники и прошивки от всех версий на открытом i4. Вам Иван ещё раз советую не изобретать велосипед, а учиться как сделано у других. если Вам нравится "с", то  всё понятно будет в вариантах на ардуино.
  • Да
  • Электронщики

Оффлайн Ermak Александр Владимирович

  • Спонсоры
  • Ветеран
  • *****
  • Сообщений: 729
  • Карма: +3/-0

  • Активность
    0%
  • Возраст: 57
  • Место жительства: Новосибирск
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #219 : 07 Февраль 2017, 10:43:38 »
Цитировать
Иван ещё раз советую не изобретать велосипед, а учиться как сделано у других.

Но всё же, у него ведь получается. Кстати у таких людей и интуиция должна быть развита. Она что то и подсказывает.
Иван ваш вариант, тоже интересен.
  • Да
  • Универсалы
Здоровья вам и долгих лет жизни! Вельма понеже.

Оффлайн Propovednik (Иван)

  • Спонсоры
  • Старожил
  • *****
  • Сообщений: 260
  • Карма: +6/-0

  • Активность
    0.2%
  • Возраст: 34
  • Место жительства: Ворсма
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #220 : 07 Февраль 2017, 14:27:50 »
Мой вариант рановато рассматривать, надо сначало доделать.
  • Да
  • Электронщики

Оффлайн Aleksandr

  • Электронщики
  • Постоялец
  • *
  • Сообщений: 115
  • Карма: +1/-0

  • Активность
    0%
  • Возраст: 47
  • Место жительства: Минск
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #221 : 08 Февраль 2017, 15:15:10 »
Цитировать
Иван ещё раз советую не изобретать велосипед, а учиться как сделано у других.

Но всё же, у него ведь получается. Кстати у таких людей и интуиция должна быть развита. Она что то и подсказывает.
Иван ваш вариант, тоже интересен.
Да, интересен. Как я понял, у Ивана сервоконтроллер имеет свойство подстраивать режимы в реальном времени.Это очень хорошая мысль,и по-моему, она получит развитие, не сейчас, так позже. Все в движении, все обязано развиваться. Поэтому я собрал его вариант и попробовал. Вроде-бы мне много и не надо, чем-то заменить шаговый двигатель, его потенциальное свойство безнаказанно пропускать шаги желание его купить убивает напрочь. Я смотрю, что мое это "много не надо" обходится огромными трудами. Хочу на словах выразить почтение и уважение Ивану и Вячеславу за настойчивую работу. Так-же хочу вас попросить скинуть мне програмку, которая работает с программатором AVR910, неохота устанавливать большую AVRstudio. Скачал где-то ChipBlaster, так потом, после работы с ней, много времени уходит на очистку компа от троянов. Хочу еще обратиться к Вячеславу с индивидуальной просьбой. Есть у меня две платы как на фото. Это серва Ивана. Вячеслав, не могли бы Вы переназначить в программе выводы под эту разводку? Хотелось бы попробовать Ваш вариант сервы с постоянными параметрами. А то резать дорожки и переделывать в плате с смд компонентами нехорошо получится. Да и на плате прекрасный 12-вольтовый драйвер.Интересно попробовать что там к чему, может, что и получится настроить. Никогда не сталкивался с ПИД регулированием. Читаю форум и чем дальше в лес, тем толще партизаны. Для ATmega-8A смд выводы такие: выходы на PB-1, PB-2; энкодер на PD-3,PD-2; STEP PD-7; DIR PB-0; ERROR PD-4; ENEBLE PD-5. Сам это сделать не смогу.
  • Начал делать
  • Ученики

Оффлайн s13

  • Разработчики
  • Старожил
  • *******
  • Сообщений: 329
  • Карма: +12/-0

  • Активность
    0%
  • Возраст: 42
  • Место жительства: Саратовская обл.
Re: Простой сервоконтроллер Часть 3
« Ответ #222 : 08 Февраль 2017, 16:32:21 »
  Здравствуйте Александр, можете прошивать хоть V5 хоть страпченку из 215 поста, для того чтобы испытать нужны только ноги энкодера и шима, а они совпадают.
ну и соединение через усб-ком нужно зацепить на txd,rxd. Если V5 то через сервотюнинг можно катать и настраивать, а если страпченку то через терминал любой, хоть от среды ардуино. лампочки и всё остальное можно и не использовать. Если уж понравится перекинете неск. проводков. Насчет авр910  или он же usbasp, попробуйте программу "eXtreme Burner - AVR" я им пользуюсь.
  • Да
  • Электронщики

Оффлайн Propovednik (Иван)

  • Спонсоры
  • Старожил
  • *****
  • Сообщений: 260
  • Карма: +6/-0

  • Активность
    0.2%
  • Возраст: 34
  • Место жительства: Ворсма
Re: Re: Простой сервоконтроллер Часть 3
« Ответ #223 : 08 Февраль 2017, 19:34:51 »
Опередил меня Слава. Тоже хотел попросить. Попробывать с нармальной прошивкой. Так сказать как должно работать.
  • Да
  • Электронщики

Оффлайн s13

  • Разработчики
  • Старожил
  • *******
  • Сообщений: 329
  • Карма: +12/-0

  • Активность
    0%
  • Возраст: 42
  • Место жительства: Саратовская обл.
Re: Простой сервоконтроллер Часть 3
« Ответ #224 : 08 Февраль 2017, 19:41:52 »
на i4 положил пример настройки страпченки, думаю по графикам понятно будет как подобрать под свой мотор..
  • Да
  • Электронщики

 

Рейтинг@Mail.ru