энКод за оборот даёт1440 тиков, ШД для одного оборота нужно 1420 тиков, НАПРИМЕР....
и как вы это учитываете в коде ?
...нужна коррекция :)
Какая коррекция? О чем вы?
Сделали тысячу шагов шаговиком по часовой стрелке (фиг его знает сколько там оборотов он накрутил).
В процессе этого шагания от энкодера пришло NNN тиков.
Теперь сделали тысячу шаг шаговиком против часово. Вопрос: сколько должно прийти тиков от энкодера? И причем тут коррекция?
это проверка ЭК... классно работает !
а при передаче ОДИН в ОДИН 1440 тиков за оборот ЭК - ШД тоже поворачивается на 360 гр ?
....такого испытания НЕ БЫЛО !
тик ЭК = 360 / 1440 = ........ , а ШД для оборота надо, например, 1024 тика.... дык, вот он и не сделает оборот :(
а при передаче ОДИН в ОДИН 1440 тиков за оборот ЭК - ШД тоже поворачивается на 360 гр ?
....такого испытания НЕ БЫЛО !
Небыло. Потому что на данный момент оно не имеет смысла.
Прежде чем перечислять все испытания которых еще небыло, ответе на прошлый вопрос. Сколько тиков мы должны получить от энкодера?
SU-27-16 пишет:
тик ЭК = 360 / 1440 = ........ , а ШД для оборота надо, например, 1024 тика.... дык, вот он и не сделает оборот :(
Я вас удивлю. Не делает он оборот по другой причине: никто не ставил такой задачи. Пока она просто не нужна.
Пока нужно добится что-бы на одно и тоже количество шагов получать одно и тоже количество тиков. Вне зависимости от направления.
А сколько там получится "в оборотах", целое или не целое. Сколько тиков энкодера соотвествует одному шагу... это вторично.
Поэтому "Сколько ШД для оборота надо" - нас пока не интересует аж никак. Нам "оборот" - не нужен.
На всякий случай: и сколько тиков энкодера приходится на один оборот - тоже сейчас не важно.
> Поэтому "Сколько ШД для оборота надо" - нас пока не интересует аж никак. Нам "оборот" - не нужен.
На всякий случай: и сколько тиков энкодера приходится на один оборот - тоже сейчас не важно.
в этой задаче как раз важно ( при k=1 ) положение вала первичного и вторичного, вернее - их синхронность, а скока тиков сделает ЭК и скока шагов ШД - вот это уже вторично....
вал первичный вращается с угловой скоростью 10 оборотов/мин с девиацией +/- 10%.....
тиками энкодера за этим не уследить ! для слежения за положением первичного вала придётся следить за временнОй расстановкой тиков... за временем возникновения КАЖДОГО тика... т.е. - за ускореним, за ускорением ускорения и т.д. - чем больше производных - тем тосчнее.... катаТак....
> Я вас удивлю. Не делает он оборот по другой причине: никто не ставил такой задачи.
не удивили... такую задачу поставил ТС... "электронный редуктор с плавающим коэффПередачи" - так ?
Нет. Не так. Перечитывайте тему.
Сейчас решается другая задача:
1. выяснить есть ли шум на энкодоре. убедится в точности измерений
2. выяснить если "пробуксовки" шаговика на старте и "проскакивания" по инерции на стопе.
Поэтому все ваши расчеты "сколько чего на оборот". "Соотношения". к и т.п. - совершенно "ни про то песня".
Прежде чем заниматься соотношенями нужно убедтся что мы "видим реальный мир без искажений" и исполнительное устройство делает ровно то что мы от него требуем.
Решил я пока приостановить на пару дней ломать себе и вам голову. В субботу куплю другой драйвер более серьезный, на TB6560. Доведу до ума силовую часть. И снова продолжу эксперименты.
Результаты на данный момент такие. Энкодер считает правильно, контроллер умеет определять направление вращения на максимально необходимых скоростях и даже более того. НИКАКИХ ошибок нет. Все четко и красиво. Нужно работать над управлением шаговым двигателем. Ес ть такая мысль, а что если на STEP подавать испульсы постянно одной и той же частоты(определить ее опытным путем, мотор не должен пропускать шаги), а enable использовать для управления. Проблема только в том как реализовать подсчет пройденых шагов. Может на прерывание повесить и считать когда enable=LOW, а когда HIGH не считать. Вопрос не будут ли два внешних прерывания конфликтовать друг с другом. Не будет ли пропуска шагов и в этом случае, но уже по другой причине.
> и исполнительное устройство делает ровно то что мы от него требуем.
для этого и нужна обратная связь, чтобы видеть проскользнул ШД или нет.
Вот этим мы и занимаемся. Пытаемся это определить. Без всяких "полный оборот".
А как с помощью пропорции высчитывать передаточное число, так это еще на первой странице темы обсудили. Смотрии сообщение #19
Но... возникли подозрение на неточность шаговика или шум энкодера. Вот сейчас и выясняем, специальными отдельными тестами (которы "да" - не являются первоначальной задачей) кто же именно "пакостит".
А потом будем решать "что с этим делать". Когда устраним причину - вернемся к первоначальной задаче.
Вообщем давайте, вы все-таки перечитаете ветку последовательно. Войдете "в контекст обсуждения", у аж потом будем про "корректировки", "обратные связи" и применимость шаговика говорить.
Ес ть такая мысль, а что если на STEP подавать испульсы постянно одной и той же частоты(определить ее опытным путем, мотор не должен пропускать шаги),
Не в ту степь. Зачем гадать? Проблема "старта" и "стопа" - это "известный недостаток" шаговиков на более/менее больших скоростях (а с увеличением скорости.... там еще хуже.... "максималка" у них не такая уж и большая. и сбиваться он может начать уже при обычном вращении. кстати прикинте... какая макс. скорость шаговика вам нужна будет).
И имеет "известные решения" (и совсем не в том что вы описали).
Нужно просто убедится что у вас "именно она".
Все-таки, вначале нужно проеверить именно "типичные проблемы", а уж потом искать "экзотические".
Тем более что проверить - не так уж и сложно .
Подскажите что это за "известный решения"? И как их можно применить в данном случае. Если имееются ввиду плавный разгон и плавное торможение, то в случае заранее известной серии управляющих импульсов достаточно просто это реализовать. В моем энкодер крутится непредсказуемо(будем считать что это так). т.е. сделал серию шагов, постоял, опять серию. каждая серия разная по кол-ву импульсов и их частоте.
Подскажите что это за "известный решения"? И как их можно применить в данном случае.
Вначале нужно убедтися что проблема действительно в этом. (тем более что решение я уже выше говорил)
cactous пишет:
Если имееются ввиду плавный разгон и плавное торможение, то в случае заранее известной серии управляющих импульсов достаточно просто это реализовать. В моем энкодер крутится непредсказуемо(будем считать что это так). т.е. сделал серию шагов, постоял, опять серию. каждая серия разная по кол-ву импульсов и их частоте.
Ну и что? На автомобиле мы тоже ездим заранее не зная где нам нужно будет разгонятся, а где тормозить.
Это чуток усложняет, конечно, но "не смертельно".
да, про это и говорю... в серве уже есть OOC. ШД, ЭК и программная ООС - по сути тоже серва
Да фиг там...
Средняя серва и средний шаговик, по точности шаговик будет конкретно выиграеть.
Особенно на малых углах поворота.
И не энкодеры там стоят обычно.... а обычный переменник.
И "дрожание сервы" - тоже не миф..
А цифровая, да с малыми углами, да с хорошей механикой.... ее еще поробуй найди. и цена бует "ой-ой...".
А если еще потребуется "многооборотная...".
ещё раз про ошибку...
энКод за оборот даёт1440 тиков, ШД для одного оборота нужно 1420 тиков, НАПРИМЕР....
и как вы это учитываете в коде ?
...нужна коррекция :)
Какая коррекция? О чем вы?
Сделали тысячу шагов шаговиком по часовой стрелке (фиг его знает сколько там оборотов он накрутил).
В процессе этого шагания от энкодера пришло NNN тиков.
Теперь сделали тысячу шаг шаговиком против часово. Вопрос: сколько должно прийти тиков от энкодера? И причем тут коррекция?
это проверка ЭК... классно работает !
а при передаче ОДИН в ОДИН 1440 тиков за оборот ЭК - ШД тоже поворачивается на 360 гр ?
....такого испытания НЕ БЫЛО !
тик ЭК = 360 / 1440 = ........ , а ШД для оборота надо, например, 1024 тика.... дык, вот он и не сделает оборот :(
а при передаче ОДИН в ОДИН 1440 тиков за оборот ЭК - ШД тоже поворачивается на 360 гр ?
....такого испытания НЕ БЫЛО !
Небыло. Потому что на данный момент оно не имеет смысла.
Прежде чем перечислять все испытания которых еще небыло, ответе на прошлый вопрос. Сколько тиков мы должны получить от энкодера?
тик ЭК = 360 / 1440 = ........ , а ШД для оборота надо, например, 1024 тика.... дык, вот он и не сделает оборот :(
Я вас удивлю. Не делает он оборот по другой причине: никто не ставил такой задачи. Пока она просто не нужна.
Пока нужно добится что-бы на одно и тоже количество шагов получать одно и тоже количество тиков. Вне зависимости от направления.
А сколько там получится "в оборотах", целое или не целое. Сколько тиков энкодера соотвествует одному шагу... это вторично.
Поэтому "Сколько ШД для оборота надо" - нас пока не интересует аж никак. Нам "оборот" - не нужен.
На всякий случай: и сколько тиков энкодера приходится на один оборот - тоже сейчас не важно.
> Сколько тиков мы должны получить от энкодера?
ровно столько сколько ему предписано дать ТехДоком
> Я вас удивлю. Не делает он оборот по другой причине: никто не ставил такой задачи.
не удивили... такую задачу поставил ТС... "электронный редуктор с плавающим коэффПередачи" - так ?
может моя залез вперёд ? но моя думает что надо начинать именно с передачи 1 : 1 .... там оборот- здесь оборот....
и после этого - k = 0,87.......2,35 юзать....
вы щас ловите тик ЭК в тик ШД, потом от этого отойдёте и всё равно придёте к ПИД-регулятору....
следящий параметр НИКОГДА не догонит параметр отслеживаемый....
задающий вал - на нём абсолютный ЭК1, исполнительным валом управляет ШД, на этом же валу такой же ЭК2, как и на задающем....
вот от разницы этих ЭК1 и 2 и надо управлять ШД через ПИД-регулятор.... ( цифровой аналог трёхфазного синхронно-следящего привода )
....посредством тиков - задачу не решить....
> Поэтому "Сколько ШД для оборота надо" - нас пока не интересует аж никак. Нам "оборот" - не нужен.
На всякий случай: и сколько тиков энкодера приходится на один оборот - тоже сейчас не важно.
в этой задаче как раз важно ( при k=1 ) положение вала первичного и вторичного, вернее - их синхронность, а скока тиков сделает ЭК и скока шагов ШД - вот это уже вторично....
вал первичный вращается с угловой скоростью 10 оборотов/мин с девиацией +/- 10%.....
тиками энкодера за этим не уследить ! для слежения за положением первичного вала придётся следить за временнОй расстановкой тиков... за временем возникновения КАЖДОГО тика... т.е. - за ускореним, за ускорением ускорения и т.д. - чем больше производных - тем тосчнее.... катаТак....
> Я вас удивлю. Не делает он оборот по другой причине: никто не ставил такой задачи.
не удивили... такую задачу поставил ТС... "электронный редуктор с плавающим коэффПередачи" - так ?
Нет. Не так. Перечитывайте тему.
Сейчас решается другая задача:
1. выяснить есть ли шум на энкодоре. убедится в точности измерений
2. выяснить если "пробуксовки" шаговика на старте и "проскакивания" по инерции на стопе.
Поэтому все ваши расчеты "сколько чего на оборот". "Соотношения". к и т.п. - совершенно "ни про то песня".
Прежде чем заниматься соотношенями нужно убедтся что мы "видим реальный мир без искажений" и исполнительное устройство делает ровно то что мы от него требуем.
Решил я пока приостановить на пару дней ломать себе и вам голову. В субботу куплю другой драйвер более серьезный, на TB6560. Доведу до ума силовую часть. И снова продолжу эксперименты.
Результаты на данный момент такие. Энкодер считает правильно, контроллер умеет определять направление вращения на максимально необходимых скоростях и даже более того. НИКАКИХ ошибок нет. Все четко и красиво. Нужно работать над управлением шаговым двигателем. Ес ть такая мысль, а что если на STEP подавать испульсы постянно одной и той же частоты(определить ее опытным путем, мотор не должен пропускать шаги), а enable использовать для управления. Проблема только в том как реализовать подсчет пройденых шагов. Может на прерывание повесить и считать когда enable=LOW, а когда HIGH не считать. Вопрос не будут ли два внешних прерывания конфликтовать друг с другом. Не будет ли пропуска шагов и в этом случае, но уже по другой причине.
> и исполнительное устройство делает ровно то что мы от него требуем.
для этого и нужна обратная связь, чтобы видеть проскользнул ШД или нет.
Теряется смысл использования шаговика. Тогда нужно думать над серво.
> и исполнительное устройство делает ровно то что мы от него требуем.
для этого и нужна обратная связь, чтобы видеть проскользнул ШД или нет.
Вот этим мы и занимаемся. Пытаемся это определить. Без всяких "полный оборот".
А как с помощью пропорции высчитывать передаточное число, так это еще на первой странице темы обсудили. Смотрии сообщение #19
Но... возникли подозрение на неточность шаговика или шум энкодера. Вот сейчас и выясняем, специальными отдельными тестами (которы "да" - не являются первоначальной задачей) кто же именно "пакостит".
А потом будем решать "что с этим делать". Когда устраним причину - вернемся к первоначальной задаче.
Вообщем давайте, вы все-таки перечитаете ветку последовательно. Войдете "в контекст обсуждения", у аж потом будем про "корректировки", "обратные связи" и применимость шаговика говорить.
Ес ть такая мысль, а что если на STEP подавать испульсы постянно одной и той же частоты(определить ее опытным путем, мотор не должен пропускать шаги),
Не в ту степь. Зачем гадать? Проблема "старта" и "стопа" - это "известный недостаток" шаговиков на более/менее больших скоростях (а с увеличением скорости.... там еще хуже.... "максималка" у них не такая уж и большая. и сбиваться он может начать уже при обычном вращении. кстати прикинте... какая макс. скорость шаговика вам нужна будет).
И имеет "известные решения" (и совсем не в том что вы описали).
Нужно просто убедится что у вас "именно она".
Все-таки, вначале нужно проеверить именно "типичные проблемы", а уж потом искать "экзотические".
Тем более что проверить - не так уж и сложно .
Подскажите что это за "известный решения"? И как их можно применить в данном случае. Если имееются ввиду плавный разгон и плавное торможение, то в случае заранее известной серии управляющих импульсов достаточно просто это реализовать. В моем энкодер крутится непредсказуемо(будем считать что это так). т.е. сделал серию шагов, постоял, опять серию. каждая серия разная по кол-ву импульсов и их частоте.
Теряется смысл использования шаговика. Тогда нужно думать над серво.
да, про это и говорю... в серве уже есть OOC. ШД, ЭК и программная ООС - по сути тоже серва
Подскажите что это за "известный решения"? И как их можно применить в данном случае.
Вначале нужно убедтися что проблема действительно в этом. (тем более что решение я уже выше говорил)
Если имееются ввиду плавный разгон и плавное торможение, то в случае заранее известной серии управляющих импульсов достаточно просто это реализовать.
В моем энкодер крутится непредсказуемо(будем считать что это так). т.е. сделал серию шагов, постоял, опять серию. каждая серия разная по кол-ву импульсов и их частоте.
Ну и что? На автомобиле мы тоже ездим заранее не зная где нам нужно будет разгонятся, а где тормозить.
Это чуток усложняет, конечно, но "не смертельно".
да, про это и говорю... в серве уже есть OOC. ШД, ЭК и программная ООС - по сути тоже серва
Да фиг там...
Средняя серва и средний шаговик, по точности шаговик будет конкретно выиграеть.
Особенно на малых углах поворота.
И не энкодеры там стоят обычно.... а обычный переменник.
И "дрожание сервы" - тоже не миф..
А цифровая, да с малыми углами, да с хорошей механикой.... ее еще поробуй найди. и цена бует "ой-ой...".
А если еще потребуется "многооборотная...".
да - такая серва будет ого-го.....
поэтому и предложил перейти на абсолютные ЭК - на первичном валу и на вторичном, т.е. на валу ШД