Телескопы покупают здесь


A A A A Автор Тема: Два двигателя на одной оси  (Прочитано 6688 раз)

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

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re:Два двигателя на одной оси
« Ответ #20 : 25 Дек 2003 [15:58:23] »
Кстати, Паша, ну как тебе JRKerr'овские сервоконтроллеры? И еще я тут на микрочиповском сайте надыбал готовый сервоконтроллер на базе PIC16F877, фирмваре написано на C, сейчас код читаю, посмотрим, может пригодится.
Ой, можно я тут тоже немножко потусуюсь? ;)

JRKerr'овские контроллеры - это классичная и давно известная вещь, но на сегодняшний день уже сильно морально устаревшая. На современной элементной базе все делается красивее и с более внушительными ТТХ. Микрочиповская аппликуха на 877 пике - это очень простая, скорее даже примитивная, разработка, ну это и понятно, нет смысла городить огород забесплатно.

Я тут в качестве развлечения занимаюсь разработкой подобных контроллеров, так вот в реалиях результат получается несколько сложнее: PIC18F452 + ПЛИС Altera EPM7032 - вот тот минимум, на котором комфортно делается контроллер ДПТ с 10битным ШИМ-ом, с поддержкой одного энкодера с квадратурным декодером в режиме учетверения отсчетов до 10+ мгц, или с поддержкой двух энкодеров, но не таких шустрых. Да, этот же контроллер еще может обслуживать ШД в режиме микрошага (128 микрошагов на шаг) независимо от энкодеров. Пока все сделано из расчета питания 50 вольт и 2 ампера без радиаторов и 5 ампер с возможностью привинтиться к радиатору, но на другом драйвере. ШД и ДПТ с новым контроллером уже испытаны, сейчас делается окончательный вариант с учетом найденых багов.

Так что не торопитесь изучать микрочиповский код ;)

Оффлайн Павел Бахтинов

  • *****
  • Сообщений: 2 495
  • Благодарностей: 108
    • Сообщения от Павел Бахтинов
    • Искусство астрофотографии
Re:Два двигателя на одной оси
« Ответ #21 : 25 Дек 2003 [16:40:03] »
Павел, а Вы не замечали в ваших экспериментах, что при изменении частоты вращения ДПТ электромагнитное торможение ШД то растет, то падает?
Нет, не заметил. Правда, специально я такой эффект не искал, но по тем нескольким точкам, в которых смотрел, мне показалось, что зависимость монотонная.

Кстати, Паша, ну как тебе JRKerr'овские сервоконтроллеры?
Вещь хорошая... вот только энкодеров относительно дорогих требует (если не ошибаюсь, не менее 100 линий или 400 импульсов на оборот, а в примерах чаще фигурирует - 500 линий). Собственно, про JRKerr я знаю давно, но вот только сейчас собрался внимательно прочитать описание (кстати, спасибо за прямые ссылки), как говориться, "пока жареный петух не клюнет..." :) . Вопрос был, в основном, по поводу интерфейса, поэтому лучше отвечу в тему о "Микроконтроллерной системе управления", чуть позже. У Микрочипа видел несколько примеров управления двигателями, но все они чем-то не понравились, хотя именно эту, возможно, и не встречал, надо будет еще раз посмотреть...

Оффлайн Павел Бахтинов

  • *****
  • Сообщений: 2 495
  • Благодарностей: 108
    • Сообщения от Павел Бахтинов
    • Искусство астрофотографии
Re:Два двигателя на одной оси
« Ответ #22 : 25 Дек 2003 [16:52:54] »
... PIC18F452 + ПЛИС Altera EPM7032 - вот тот минимум, на котором комфортно делается контроллер ДПТ с 10битным ШИМ-ом, с поддержкой одного энкодера с квадратурным декодером в режиме учетверения отсчетов до 10+ мгц...
ШД и ДПТ с новым контроллером уже испытаны...
Ну, типа... круто!
А можно поподробнее про результаты и условия испытаний?

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re:Два двигателя на одной оси
« Ответ #23 : 25 Дек 2003 [17:10:12] »
А можно поподробнее про результаты и условия испытаний?

Результаты испытаний пока более качественные, нежели чем количественные :)
Основные результаты: ШД шагает в микрошаге, ДПТ с энкодером 2500 лин на оборот (10000 фронтов) летает как угорелый. Сейчас печатная плата переделывается с учетом найденых недоработок и окончательный вариант будет готов в январе, тогда и будут проведены окончательные испытания и исследования, как то точность позиционирования в микрошаге (мы с товарищем Маколкиным уже и гониометр ГС-10 припасли на этот случай :) ) и динамические характеристики ДПТ с энкодером.
« Последнее редактирование: 25 Дек 2003 [17:11:38] от Anton »

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re:Два двигателя на одной оси
« Ответ #24 : 26 Дек 2003 [07:15:03] »
Цитата
JRKerr'овские контроллеры - это классичная и давно известная вещь, но на сегодняшний день уже сильно морально устаревшая. На современной элементной базе все делается красивее и с более внушительными ТТХ.
О чем я собственно и обмолвился пару дней назад в другой теме. Я и не говорю, что JRKeровский чипсет это самое что ни на есть современное решение. Просто, Паша спрашивал про них, и потом для них есть уже написаный, отлаженый и бета протестированный софт.
На счет современной базы, хоть я уже наверное кое кому с этим плеш проел, но еще раз - Микрочип анонсировал в конце сего года выход в серию контроллеров dsPIC30, предназначенных специально для управления двигателями. Судя по всему это должно произойти на днях. Там будет до четырех 10 битных ШИМа и декодер энкодера с учетверением. Обещают цену от 4 до 14 убитых е. за штуку в зависимрсти от кол-ва мозгов и ног. Для них уже можно качать С компиллер и МПлаб имеет PIC30 симулятор с поддержкой всей периферии вплоть до УСАРТа. Вот на эти штуки я глаз и положил.
Цитата
Микрочиповская аппликуха на 877 пике - это очень простая, скорее даже примитивная, разработка, ну это и понятно, нет смысла городить огород забесплатно.
Но для общего развития интересно ознакомиться, особенно тем кто motor control'ем только начинает интересоваться.
Цитата
вот только энкодеров относительно дорогих требует (если не ошибаюсь, не менее 100 линий или 400 импульсов на оборот, а в примерах чаще фигурирует - 500 линий).
Там что так написано? Не, по моему пофигу, хоть от мыши кодовые диски ставь, скажется лишь на передаточном числе редуктора. Хотя может быть я и не прав - перечитаю.
Цитата
Да, этот же контроллер еще может обслуживать ШД в режиме микрошага (128 микрошагов на шаг) независимо от энкодеров.
Может поддерживать в принципе или это будет использоваться? Сам меня спровоцировал мерять и потом покаяться в том, что микрошаги точности лучше 1/10 шага не дают. А теперь про какие-то 128 микрошагов говоришь.

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re:Два двигателя на одной оси
« Ответ #25 : 26 Дек 2003 [12:47:13] »
dsPIC30, предназначенных специально для управления двигателями.

dsPIC30 анонсируется уже третий год, а до живых камней дело так и не дошло до их пор. В ближайший год до реальных поставок я полагаю дело так же не дойдет. Мелкочип все раздумывает, стоит ли ему влезать на этот рынок. Даже если камни и пойдут, то будет еще на пару лет глюков и багов. Ведь сейчас например нету ни одного пика толще 18f452, который реально, а не на бумажке, работал бы на 40 мгц. Ошибочка вышла и мелкочипы быстренько сляпали еррату, что мол нолик лишний, мол всего 4 мгц пока :( . Так что на dsPIC пока лучше не расчитывать.

Цитата
Может поддерживать в принципе или это будет использоваться? Сам меня спровоцировал мерять и потом покаяться в том, что микрошаги точности лучше 1/10 шага не дают.

Все зависит от реализации! И сможет ли двигатель 128 микрошагов шагать или нет, зависит только от двигателя, А то что контроллер поддерживает 128 микрошагов, не значит, что он не поддерживает 10. Эта цифирка программируется пользователем. Сколько нужно микрошагов на полный шаг, столько и делай. Кстати для облегчения мучений с микрошагом, форму тока можно просто заливать в контроллер в виде таблицы, хоть синус, хоть с четвертой гармоникой, хоть пилу.

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re:Два двигателя на одной оси
« Ответ #26 : 26 Дек 2003 [13:43:25] »
Цитата
Все зависит от реализации! И сможет ли двигатель 128 микрошагов шагать или нет, зависит только от двигателя, А то что контроллер поддерживает 128 микрошагов, не значит, что он не поддерживает 10. Эта цифирка программируется пользователем. Сколько нужно микрошагов на полный шаг, столько и делай.
Спасибо, что ты мне дураку это объяснил ;)...но я вообще-то имел в виду, что ты сам сомневался, насколько я помню, что если контроллер поддерживает 20 микрошагов, то двигатель на самом деле не обязательно шагает с такой точностью. Так оно на самом деле и получается. Так вот я и спрашиваю, реально сколько микрошагов будет использоваться.
Цитата
Кстати для облегчения мучений с микрошагом, форму тока можно просто заливать в контроллер в виде таблицы, хоть синус, хоть с четвертой гармоникой, хоть пилу.
Ну а это и козе понятно.  :)
« Последнее редактирование: 26 Дек 2003 [13:44:00] от Денис Н. (teleglassmaker) »

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re:Два двигателя на одной оси
« Ответ #27 : 26 Дек 2003 [14:00:19] »
Антон у меня к Вам такой вопрос. Известны ли Вам экспериментальные данные о необходимой частоте ШИМ для микрошагания. Я спаршивал у Бартелса, он говорит, что на частоте от 300 Hz до 2kHz, большинство моторов работаю хорошо. Наилучшая частота в районе 1,2 kHz. У него в программе частоту можно настроить. Но вот в PIC16F87x на 20MHz, этот параметр не меньше 1,22kHz, а в PIC18, если на 40MHz, то в два раза больше. То есть больше установить можно, меньше нет. Есть ли комментарии по поводу этих цифр -300Hz-1,2kHz-2kHz? Спасибо.

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re:Два двигателя на одной оси
« Ответ #28 : 26 Дек 2003 [14:51:53] »
Так вот я и спрашиваю, реально сколько микрошагов будет использоваться.

Будет взят реальный двигатель и будет промерян энкодером или на гониометре. И только тогда будет ясно сколько реально микрошагов получится реализовать на данном конкретном экземпляре двигателя. Вопрос о точности и целесообразности работы именно в N микрошагов на шаг должен решаться для КАЖДОГО конкретного двигателя. Контроллер может 128, но это не означает, что это же сможет первый попавшийся двигатель из дисковода.
« Последнее редактирование: 26 Дек 2003 [14:52:43] от Anton »

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re:Два двигателя на одной оси
« Ответ #29 : 26 Дек 2003 [15:08:40] »
Антон у меня к Вам такой вопрос. Известны ли Вам экспериментальные данные о необходимой частоте ШИМ для микрошагания. Я спаршивал у Бартелса, он говорит, что на частоте от 300 Hz до 2kHz, большинство моторов работаю хорошо. Наилучшая частота в районе 1,2 kHz. У него в программе частоту можно настроить. Но вот в PIC16F87x на 20MHz, этот параметр не меньше 1,22kHz, а в PIC18, если на 40MHz, то в два раза больше. То есть больше установить можно, меньше нет. Есть ли комментарии по поводу этих цифр -300Hz-1,2kHz-2kHz? Спасибо.

Не очень понятен смысл термина "частота ШИМ для микрошагания". А в режиме полного/полушага для ограничения тока, например, эта частота может/должна быть другой?

Если это все таки обратная величина от периода ШИМ, то это полный бред. На 1 килогерце (длит имп 1 мс) движок от дисковода стартует с места легко. О каком ШИМе вообще может идти речь? Частота ШИМ должна быть на порядок выше, чем рабочие частоты самого двигателя, те на один импульс тока в обмотку длительностью 1 мс например, должен укладываться хотя бы десяток периодв ШИМа. В моем контроллере - это 40 кгц.

То что у Бартелса идет речь о ~1 кгц , скорее всего говорит о том, что просто невозможно программно получить более высокую частоту и приходится обходиться тем, что получается. Ну а то, что на каких-то частотах что-то работает лучше, а что-то хуже может быть связано с резонансными явлениями в двигателях.

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re:Два двигателя на одной оси
« Ответ #30 : 26 Дек 2003 [15:35:19] »
Цитата
Не очень понятен смысл термина "частота ШИМ для микрошагания".
Частота ШИМ это величина обратная периоду, какой еще может быть смысл этого термина?
Цитата
О каком ШИМе вообще может идти речь? Частота ШИМ должна быть на порядок выше, чем рабочие частоты самого двигателя, те на один импульс тока в обмотку длительностью 1 мс например, должен укладываться хотя бы десяток периодв ШИМа.
Можете дать ссылку на то, где это положение описано подробно? У М.Б в программе в один импульс тока в обмотку может укладываться в зависимости от скорости от 1 до "бесконечности" число периодов ШИМ. Мне просто хотелось бы почерпнуть информацию по этому поводу из нескольких источников.
Цитата
То что у Бартелса идет речь о ~1 кгц , скорее всего говорит о том, что просто невозможно программно получить более высокую частоту и приходится обходиться тем, что получается. Ну а то, что на каких-то частотах что-то работает лучше, а что-то хуже может быть связано с резонансными явлениями в двигателях.
Можно получить частоту и 10Hz и 10KHz, это настраивается в программе. Другое дело, что как утверждает М.Б. большинство пользователей сообщают о наиболее стабильной работе двигателя при частоте в среднем 1,2kHz.
« Последнее редактирование: 26 Дек 2003 [15:46:53] от Денис Н. (teleglassmaker) »

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re:Два двигателя на одной оси
« Ответ #31 : 26 Дек 2003 [15:43:14] »
Цитата
В моем контроллере - это 40 кгц.
А ну понял, то есть у Вас максимальная скорость 4000 микрошагов/сек. А в scope.exe где-то на два порядка меньше.

А для больших скоростей, например при наведении, ШИМ вообще не используется, используется режим полушагов, простым переключением обмоток.

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re:Два двигателя на одной оси
« Ответ #32 : 26 Дек 2003 [16:08:09] »
Другое дело, что как утверждает М.Б. большинство пользователей сообщают о наиболее стабильной работе двигателя при частоте в среднем 1,2kHz.

Более чем странно. На килогерце дисководный движок легко стартует с места. При попытке удержания в режиме микрошага на такой частоте он должен трястись.

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re:Два двигателя на одной оси
« Ответ #33 : 26 Дек 2003 [16:15:44] »
Цитата
В моем контроллере - это 40 кгц.
А ну понял, то есть у Вас максимальная скорость 4000 микрошагов/сек. А в scope.exe где-то на два порядка меньше.

А для больших скоростей, например при наведении, ШИМ вообще не используется, используется режим полушагов, простым переключением обмоток.

Если честно, то такой параметр как количество микрошагов в секунду я даже особо и не рассматривал... Частота ШИМа фиксирована - 40 кгц. Программируется длительность одного микрошага. Уж сколько уложится периодов ШИМ в один шаг столько и уложится...

А в режиме шага и полушага ШИМ используется обязательно для ограничения тока через обмотки.

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re:Два двигателя на одной оси
« Ответ #34 : 26 Дек 2003 [19:58:34] »
У М.Б в программе в один импульс тока в обмотку может укладываться в зависимости от скорости от 1 до "бесконечности" число периодов ШИМ.

Уж я не знаю из каких соображений и чего там напрограммировал Бартелс, но сам принцип ЦАП на ШИМ предусматривает на выходе интегратор (ФНЧ) - конденсатор если интегрирует напряжение или индуктивность если интергируем ток. И если частота будет слишком низкая, то ничего там интегрироваться не будет, ток в обмотке двигателя будет повторять форму напряжения приложенную к ней. Только начиная с некоторой характерной частоты мы получим интегрирующий эффект. Для типичных индуктивностей обмоток ШД 1- 100 мГн и сопротивлений 1-100 ом постоянная времени LR цепочки (t=L/R)имеет порядок миллисекунды. А значит килогерца МАЛО!

Кстати, все промышленные контроллеры для работы в микрошаге, что я видел, имеют частоты ШИМа в диапазоне 20-100 кгц и расчитаны на работу с индуктивнистью порядка 1-100 мГн.
« Последнее редактирование: 26 Дек 2003 [20:26:38] от Anton »

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re:Два двигателя на одной оси
« Ответ #35 : 27 Дек 2003 [08:07:02] »
Цитата
Частота ШИМа фиксирована - 40 кгц. Программируется длительность одного микрошага. Уж сколько уложится периодов ШИМ в один шаг столько и уложится...
Понятно, что сколько уложится, столько уложится. Но раз раз Вы говорите, что в один микрошаг должны укладываться хотя бы 10 периодов ШИМ, то я и заключил, что у Вас максимальная скорость составит 4000 мкшагов/сек (40000/10=4000). Воообще-то наврал я в предыдущем посте, торопился, скорость не на два порядка ниже, а в два раза ниже, у меня так настроено - частота ШИМ 2kHz, при максимальной скорости в один микрошаг укладывается только 1 период ШИМ. А вообще большинство используют частоты еще ниже, те самые 1,2 kHz,  и соответственно макс. скорость 1200 мкшагов/сек. Если данной скорости в какой-то момент не достаточно, программа просто снижает число микрошагов на шаг.
Цитата
А значит килогерца МАЛО!...При попытке удержания в режиме микрошага на такой частоте он должен трястись.
Не знаю, нормально работает, не трясется.

Оффлайн Павел Бахтинов

  • *****
  • Сообщений: 2 495
  • Благодарностей: 108
    • Сообщения от Павел Бахтинов
    • Искусство астрофотографии
Re:Два двигателя на одной оси
« Ответ #36 : 28 Дек 2003 [18:45:30] »
Цитата
вот только энкодеров относительно дорогих требует (если не ошибаюсь, не менее 100 линий или 400 импульсов на оборот, а в примерах чаще фигурирует - 500 линий).
Там что так написано? Не, по моему пофигу, хоть от мыши кодовые диски ставь, скажется лишь на передаточном числе редуктора.
Это написано не у самих JRKerr (им-то действительно пофигу), а в спецификации построенного на этом чипсете контроллера ServoCAT (RXDesign), который, собственно, и рекомендует Бартелс.
Тут надо понимать разницу в функционировании ШД и сервопривода. Если ротор шаговика просто удерживается магнитным полем в пределах шага, то сервопривод все время динамически "балансирует" вокруг некоторого положения равновесия. Поэтому, в отличие от ШД, ошибка позиционирования которого не превышает величины шага (а в полу- и микрошаговых режимах еще значительно снижается), ошибка сервопривода всегда больше "шага" (отсчета энкодера), а в динамике (при ускорениях, флуктуациях тормозящего момента и т.п.) может достигать даже десятка и более "шагов". Видимо, поэтому, разрешение энкодеров сервоприводов GOTO-системы и рекомендуют выбирать с некоторым запасом (на самом деле есть и другие пути, например, использование энкодера с интерполяцией, но у JRKerr задача, похоже, решена "в лоб").
В принципе, это одна из причин, по которой предлагаемая здесь схема двухдвигательного "тандема" кажется мне перспективной - она сочетает в себе лучшие качества ШД и ДПТ.

Известны ли Вам экспериментальные данные о необходимой частоте ШИМ для микрошагания. Я спаршивал у Бартелса, он говорит, что на частоте от 300 Hz до 2kHz, большинство моторов работаю хорошо. Наилучшая частота в районе 1,2 kHz.
Это очень странно... Обычно, частота ШИМ в подобных устройствах - десятки кГц. Можно предположить, что такая низкая "оптимальная" частота у Бартелса связана с особенностями его схемы/программы, но никак не с фундаментальными соображениями или свойствами шаговиков. Проектируя что-то на PIC-е, вполне можно выбирать максимальную частоту, на которой еще хорошо работают силовые ключи.

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

Оффлайн Anton

  • *****
  • Сообщений: 7 285
  • Благодарностей: 77
    • Сообщения от Anton
Re:Два двигателя на одной оси
« Ответ #37 : 30 Дек 2003 [02:46:56] »
Так вот я и спрашиваю, реально сколько микрошагов будет использоваться

Еще кстати ссылочка на буржуазный опыт:http://www.compumotor.com/catalog_2002/pgs214_223_ESeries.pdf

С моторами, поставляемыми тем же производителем, декларируется 50800 микрошагов на оборот при 5 минутной точности. Для 200 шагового двигателя это аж 254 микрошага на шаг. Ну и не стесняются особого этого факта, думаю не врут. Так что и не такое возможно.