RSS лента

Железо

  1. Вроде добили измерялку скорости

    22.09.2018 в 20:57 (Тарахтелка)
    https://github.com/speedcontrols/ac_sc_grinder

    Напоминаю предысторию - перед тем как химичить с калибровкой ПИ-регулятора, понадобилось компенсировать нелинейность мотора (rpms/volts). Над этим и бились. Вроде победили, не считая пары нюансов, которые закроем в понедельник.

    Картинки можно посмотреть в файле https://github.com/speedcontrols/ac_...terpolated.ods. Там 3 графика:
    • Красный - что померили тахометром.
    • Синий - что показывает измерялка Back EMF.
    • Желтый - после отбрасывания шумов и вычисления полинома пятой степени.
    Шаг измерений нелинейный, чтобы сократить время калибровки - в начале почаще, в конце пореже.

    На синем графике в середине возникает загадочный провал, объяснения которому нет. Но поскольку он не очень сильный и мешать ...
    Категории
    Железо
  2. Продолжаем биться с калибратором

    10.09.2018 в 17:12 (Тарахтелка)
    Как оказалось, корректно снять характеристику мотора (зависимость оборотов от напряжения) не так просто.
    • Те шумы скорости, которые пофик при реальной работе, в калибраторе довольно сильно мешают.
    • Определить что скорость стабилизировалась (перед началом измерений), тоже тот еще квест.
    В общем, вместо того чтобы семимильными шагами писать калибровку ПИД-а, буксуем на предыдущем этапе.
    • Пока на тестовых данных сделали апроксимацию графика полиномом. С виду симпатично.
    • Думаем, как детектить что скорость выросла и перестала меняться.
    В общем, текущая неделя уйдет на суровую математику и эксперименты. Одно радует - вся эта хренотень потом перенесется на следующие типы регуляторов. Текущая железка - это ведь полигон, для того чтобы разобраться в технологиях разработки. Так что время тратится с большой пользой.
    Категории
    Железо
  3. Продолжаем изобретать калибровку ПИД-а

    03.09.2018 в 00:01 (Тарахтелка)
    Как обычно, повылазили новые нюансы . Рассказываю.

    Во-первых, вычисление скорости переписали через свертку за период. Старый способ оказался шумноват для тонких вещей. Во-вторых, мы забыли компенсировать нелинейную характеристику мотора (это добавило проблем ПИД-у). Я залил на гитхаб новые файлы с реальными данными и графиками.

    К счастью, снять характеристику мотора не сложно - просто плавнo наращиваем фазу триака и меряем скорость в 20 точках. Ну а потом интерполятором накладываем коррекцию.

    Теперь по ПИД-у. Стандартные методы ...
    Категории
    Железо
  4. Еще немного математики по калибровке

    27.08.2018 в 02:27 (Тарахтелка)
    https://github.com/speedcontrols/ac_...ree/master/doc

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

    Сопротивление и индуктивность мотора

    Во-первых, когда мотор остановлен, можно легко насытить железки тестовым импульсом. В итоге мы подаем только 10% от полупериода синусоиды.

    Во-вторых, вычисляемые R и L зависят от длины поданного импульса (смотрите по выложенным файлам с выборками). Сопротивление на минимальном импульсе в полтора раза больше чем на максимальном. Придумать правдоподобную модель сходу не получилось (одному аллаху известно, что там со щетками). В итоге просто используем результаты с 10% импульса.

    Нормализация скорости

    Значение скорости ОЧЕНЬ шумное.
    • Есть шумы в пределах одного периода. Давятся
    ...
    Категории
    Железо
  5. Еще раз про управление мотором через симистор

    24.08.2018 в 20:16 (Тарахтелка)
    Как обычно, новые кровавые подробности . Сегодня отладили новый медианный фильтр, эмулятор EEPROM и стали ковырять калибраторы.

    Выплыл досадный косяк в управлялке триаком. Изначально симистором рулили короткими импульсами (через оптрон), откладывая нужный кусок синусоиды. И все было бы хорошо, если бы нагрузкой была простая лампочка. Но там же ж блин моторчик, у которого смещен ток.

    В итоге триак закрывается не когда напряжение падает до нуля, а позже. Поэтому на макимуме следующий импульс идет когда триак все еще не до конца закрылся, ...

    Обновлено 24.08.2018 в 20:45 [ARG:5 UNDEFINED]

    Категории
    Железо
  6. Регулятор, промежуточные итоги.

    23.08.2018 в 12:55 (Тарахтелка)
    Вот наконец-то регулятор достиг той точки, когда можно взять прошивку и попробовать ей воспользоваться. Правда автокалибровки там еще нет, поэтому с текущим конфигом будет работать только на одном типе моторов. Поэтому лучше подождать недельку-другую полноценного релиза.

    Жду когда доедут новые платы и понемногу готовлюсь к тому, чтобы прибить историю коммитов в репе (в отладочной ветке многовато мусора от творческих метаний).

    На завтрашнюю отладку уже заготовлены новые куски кода:
    • Скользящий медианный фильтр (для считалки скорости). Помимо того что "это красиво", позволит гарантировать отсутствие переполнений на не калиброванном девайсе.
    • Считалка сопротивления и индуктивности двигателя.
    Вроде сюрпризов не ожидается, и останется только добить калибровку коэффициента масштабирования скорости и настройки ПИД-a.
    Категории
    Железо
  7. Регуль, прогресс...

    14.08.2018 в 19:53 (Тарахтелка)
    Прогресс пока в основном на макетке, но хорош. Комрад переписал формулу вычисления скорости, заменив стрёмную свертку на более полноценное выражение с производной. Сообщил, что теперь обороты держатся намного стабильнее во всем диапазоне (для одних и тех же коэффициентов ПИД-а). Был скользкий момент с насыщением магнитного потока (если поток не линейный, то формулы просто так не сократить), но, хвала всем богам, его либо нет, либо им можно пренебречь без последствий.

    То есть теперь, чтобы определить скорость, достаточно двух соседних отсчетов (два - чтобы производную тока определить). Единственный нюанс - во время включения симистора производная слишком большая, и стоит игнорировать данные. Теперь осталось внимательно перепроверить на реальном моторе, вписываемся ли в нужную точность, и будем "отливать в граните". Проверять надо на минимальной скорости, 3000rpm (~10% от макимума):
    • Сколько нужно выпилить отсчетов в начале
    ...
    Категории
    Железо
  8. "Клавиатура" для регулятора бормашинки

    10.08.2018 в 15:47 (Тарахтелка)
    Ну что ж, регулятор с новой платой и прошивкой ожил, но надо уточнять математику. Если выставить ПИД на большой скорости, то там стоит как влитой, но на малых не хватает (просадка, потом восстановление за 2 сек). Если выставлять ПИД на малой скорости - то на малой держит железно, а на большой уже начинает дергаться.

    Я не хочу пока фантазировать о причинах такого поведения, т.к. придерживаюсь простого принципа - если есть явно кривой код, то надо его сначала выпрямить, а потом разбираться с остальным. Потому что когда кривых мест несколько, то они накладываются, и разбираться в причинах - не рациональная трата времени. А исправлять еще есть что:
    • Грубовато сократили формулу вычисления скорости.
    • Есть накладки с точностью на математике с фиксированной точкой, и погрешность не поддается нормальной оценке.
    • Остались "магические константы" (зависят от параметров двигателя).
    Что можно на эту тему предпринять?
    • Напарник пообещал за выходные
    ...
    Категории
    Железо
  9. Исправления в регуляторе

    09.08.2018 в 18:03 (Тарахтелка)
    https://easyeda.com/speed/AC-speed-control-for-grinder

    В прошлый раз писал, что в регуляторе концы с концами слегка не сошлись. Бывает. Для тех кто не занимается профессиональным проектированием приводов, ниже подробности. Возможно кому-то они будут полезны.

    АЦП

    Не учел импеданс цепочки, через которую меряется входная синусоида. В итоге измерялку слегка перекосило. Выпилил резистор между делителем и входом АЦП, не нужен он. Заодно, на всякий случай, поставил защитную сборку из диодов шодки. В основном от отрицательного напряжения, чтобы не юзать внутренние защитные диоды микросхемы (меньше шансов, что отрицательной напругой перекосит мультиплексор ...

    Обновлено 10.08.2018 в 14:23 [ARG:5 UNDEFINED]

    Категории
    Железо
  10. Новости отладки регулятора скорости

    06.08.2018 в 19:29 (Тарахтелка)
    Жизнь не перестает удивлять. Помимо всяких рабочих моментов в регуляторе вылезли вещи которые сложновато вообразить:
    • Симистор иногда сам открывается на весь полупериод. Хотя он понтовый 3Q snubberless (bta16-cwrg).
    • Прерывания ADC (после каждой выборки из 4 каналов), несмотря на передачу данных через DMA, съедают подозрительно много ресурсов. На остальное уже не хватает.
    Это немного неожиданно, но не фатально. Будем лечить.
    • К симистору временно привернули снаббер (и он сразу заработал как надо). Дальше будем заменять управляющую опторазвязку MOC3023 на MOC3052. Натыкался в интернетах на такой странный рецепт.
    • Логику выборки из АЦП переделаем. Будем выгребать по DMA в цикле сразу 16х4 отсчетов, с прерыванием на середине и конце. А вместо таймера - поллинг внутри main (кривовато конечно, но в данных обстоятельствах приемлимо).
    Победа всё ближе
    Метки: stm32
    Категории
    Железо