сервопрвод от Jina

Baha

есть книжка, Аналоговые интерфейсы микроконтроллеров, автор С.Болл, описано ПИД управление, различными устройствами, в том числе двигателями. Может пригодится, описано очень доступно, для практического применения, без лишней воды и теорий.

Jina

ага, занятная книжка, спасибо ,читаю

вот такое видео😍

rutube.ru/tracks/5698368.html

качество правда никакое но хоть что то видно

8 days later
Jina

во,прошивка новая нарисовалась:)
дописано так,если привод стоит , а регистр(тот что со 127) не равен 127, то начинает накапливаться ошибка и прибавляться к шим, в результате у двигателя хватает сил докрутить до состояния что бы в регистре(со127) стало 127.
в архиве прошивка и исходники на мегу8 и мегу16

вот мой энкодер и движек

мой сервопривод2.zip

cd-print

Если правильно вкурить теорию ПИД управления то там можно увидеть что интегральную и диффиренциальную составляющую можно считать не только по предпоследнему шагу, как у большинства программ но и за несколько предидущих итераций. Тогда за 5-10 итераций интергральная состовляющая вырастит до необходимого значения и “дотянет” мотор до нужной позиции.
Надеюсь я понятно высказался.

Энкодер от мышки просто класный.

4 months later
Jina

если кому интересно, то выкладываю свою разводку платы, схему нарисую
немного позднее, сейчас работой завалили😁

что то не получается вложение сделать, по пробую немного позднее повторить

что то не получается вложение сделать, попробую позднее

22 days later
Jina

ура , удалось плату выложить😒

и даже схему удалось загрузить:o

на данный момент пытаюсь прописать люфт в шагах энкодера, собсно ввести люфт получается кроме скорости самого люфта , чего то у меня бардак получается , а если его резко выбирать при моем редукторе то стук неприятный получается , в общем если у кого есть мысли какие то то излагайте , интересны новые какие то идеи
еще вопрос , у меня периодически пропадает тема “драйверы и контроллера cnc” это только у меня или у кого то еще?

новый привод.zipсхема моего сервопривода ATMega 16.zip

3 months later
Jina

в новой прошивке исправлен пид, точнее написан в удобоваримом виде и дописана отработка люфта.
пид работает великолепно, под болгарские двигатели даже настраивать не пришлось, отработка люфта при изменении направлении движения тоже работает великолепно и с заданной скоростью, на выходе с привода ставится флажёк,занят, и идет оработка люфта, если в это время придут импульсы,стэр, то запоминаем и потом отрабатываем , правда со скоростью отработки люфтано есть но,
если использовать ,Mach3, но оный пока строку не отработает на паузу не станет, про ,backlach, знаю , но я использую модуль юсб с этого сайта а он не доделан, там нет отработки люфта

прошивку выложу чуть позднее

9 months later
mm1508

Здравствуйте Jina, я внимательно слежу за всеми разработками ЧПУ самодельных станков. Очень хотелось посмотреть если можно вашу разработку.
Почему-то все темы плавно закрываются не имея логического завершения.
Заранее спасибо.

10 days later
Bmax77

Здравствуйте. Можете разъяснить несколько вопросов? Как я понял вы управляете двигателем импульсами степ, скольким шагам энкодера соответствует один шаг? Какова зона нечувствительности в импульсах энкодера? Или двигатель устанавливается точно импульс в импульс по энкодеру, тогда как боретесь с дрожанием?

Bmax77

И еще поясните, если управляете сигналами степ то получается что нужно чтобы сначала набралось ощутимое рассогласование для того чтобы двигатель начал двигаться.

Jina

спасибо что проявляете интерес. отвечу на ваши вопросы, каждому импульсу степа соответствует импульс с энкодера,т е если энкодер с 50 дырок это 200 импульсов(на оборот движения конечно) это соответствует 200 импульсам степ. а насчет накопления импульсов степа вы не правы, даже если подать один импульс степа или после отработки останется один недоделаный то произойдёт накопление ошибки позиционирования во времени, на выходе увеличится скважность шима, возрастет напряжение и ток на двигателе и у оного станет достаточно момента для того чтобы провернуться и исправить позицию, соб-сно это и есть работа пид регулятора

к вопросу дрожания, пид регулятор есть ни что иное как операционный усилитель с положительной и отрицательной обратной связью, так вот, при установлении параметров пид (как в случае с приводом Чена) надо выбрать такое значение усиления чтобы двигатель мог оперативно обрабатывать ошибку позиционирования, если сделать усиление маленькое то пока там накопиться ошибка пройдёт некоторое время, нам это видно так как будто двигатель вялый, а если усиление большое то двигатель очень резво пытается устранить ошибку и перелетает заданную точку , потом также назад, нам это видно как двигатель колбасит. как тут сделано у меня? я двигатели рассматриваю с точки зрения массы. если двигатель лёгкий то усиление маленькое, а если ротор тяжёлый то усиление большое. у меня на станке стоят двигатели принтерные, где то 0.05н, на станке что собираю 0.3н параметры усиления пропорционально и завышены

Bmax77

спасибо за ответ. поясните подробнее: т е если энкодер с 50 дырок это 200 импульсов(на оборот движения конечно).
вот как раз хотел еще уточнить про накопление ошибки во времени, какое время вы даете двигателю на отработку ошибки, тоесть если придет один импульс степ, то за какое время двигатель должен отработать это рассогласование?

Jina

у меня это выглядит так, если степ не отработан то , наступает время (приблизительно ск\64 это делитель таймера-счетчика) и в шим добавляется еденица, таким образом скважность шима увеличивается, чем дольше ошибка не исправляется тем больше на двигателе напряжение и ток, а значит и момент, вот и наступает момент когда у движка сил хватает. добавлять можно и 2 еденицы больше , это и есть усиление на пид. у меня момент страгивания с места равен 10 из 255 возможных. что касательно измерений в реальном времени, то ответить не могу, скажу лишь что это измеряется милисекундами. у меня позиционируеся двигатель достаточно бодро

Bmax77

Еще раз спасибо, меня какраз интересовал порядок цифр. Пока в симуляторе играюсь там мотор-энкодер не адекватен.

Jina
Bmax77:

Еще раз спасибо, меня какраз интересовал порядок цифр. Пока в симуляторе играюсь там мотор-энкодер не адекватен.

а что за симулятор? если algorithm builder то там надо ручками на пины галки переставлять, долго конечно и нудно

Bmax77

в протеусе играюсь. там проблема в том что не удается от модели мотор-энкодера добиться нужной скорости вращения и колличества импульсов на оборот.

Jina
Bmax77:

в протеусе играюсь. там проблема в том что не удается от модели мотор-энкодера добиться нужной скорости вращения и колличества импульсов на оборот.

я протеус как программу не воспринимаю, глючный он очень, проще и быстрее макет на столе собери, в качестве н-моста можно L298 взять, а мотор например из принтера, у меня например с кенона, хотя сейчас все принтеры с энкодерами, по скорости у меня получалось почти 40килостепов

для повышения быстродействия привода пид надо выносить за пределы контроллера, а для ещё большего быстродействия и математику тоже, контроллеру оставить только надзорные функции, примером служит привод А-300,соб-сно все идеи мои с него вышли

Bmax77

ну l298 уже успешно работает и даже моторчик крутится туда сюда от меги8. Пока с энкодером запара, нет времени диск попробовать сделать. Меня смущает то что двигатель в модели очень долго качается около нулевой точки после останова, а если вводить мертвую зону в несколько импульсов энкодера то соответственно увеличивается отставание от степ на эту величину, хотя качание пропадает. Кстати хотел спросить у вас в алгоритме учитывается, что в данный момент происходит отставание или уже перебег и нужно тормозить или все на чистой математике пид работает? Я пробовал делать пид в железе но он следил за скоростью вращения, и тоже была проблема с плаванием скорости около точки равновесия.

Jina

в пиде у меня чистая математика, а разгон и торможение не уместны, этим должна программа управления чпу заниматься

если вал двигателя у тебя трясётся то попробуй вал нагрузить, например помазав эпоксидной смолой без отвердителя, тогда вал точно в позицию останавливаеся, в любом случае уменьшай установки пид или замедляй скорость срабатывания пид, если используешь мою прошивку просто поменяй время на таймер-счётчике

Bmax77

разгон и торможение я имел в виду при отработке рассогласования.

8 days later
Stillwell

я так понимаю что интерфейса настройка пид нет?