RSS лента

Тарахтелка

Тряпочки жжем, смеёмся...

  1. Залили в реп автонастройку ПИД-а бормашинки

    10.11.2018 в 05:35 (Тарахтелка)
    https://github.com/speedcontrols/ac_sc_grinder

    Там еще овердохрена приключений с теорией, но видимо остановимся на том что есть. Ибо уже подзадолбало ковыряться, да и работает приемлемо. Опишу в общих чертах что вышло. Решили подбирать методом половинного деления, по отсутствию автоколебаний и перерегулирования. Каждый шаг занимает пару секунд, всего около 6 шагов - довольно быстро, и нет смысла мудрить с продвинутыми техниками. Получилось примерно так:
    • P - сначала отпускаем коэффициенты и меряем дисперсию шума. Автоколебанием считаем если дисперсия больше шума на 10%. Потом двигаемся между минимумом и максимумом, уменьшая шаг, пока не найдем точку где автоколебаний все еще нет.
    • I - тут немного хитрее. Поскольку автоколебаний им не запустить, то дергаем скорость с 0.3 до 0.4 и смотрим чтобы выход не "заносило". Тоже половинным делением подбираем нужное значение.
    • Уменьшаем оба коэффициента на 0.8, для запаса стабильности.
    Крайние значения интервала ...
    Категории
    Железо
  2. Похоже нашлась замена для Sphinx Search

    01.11.2018 в 00:52 (Тарахтелка)
    Долгое время для организации поиска по сайту использовал Sphinx Search. Легковесных альтернатив у этой штуки нет. Всякие эластики для нормальной работы требуют кластер, что для простых проектов жирновато. Из минусов - закрытый процесс разработки и очень нерегулярные релизы.

    Недавно в очередной раз проверял альтернативы, и обнаружил https://github.com/manticoresoftware/manticoresearch. Оказывается сфинкс форкнули, и решили все нюансы, от которых у меня пригорало.

    В качестве бонуса - в Мантикоре реализовали перколатор (обратный поиск). Это когда люди говорят "хочу отслеживать поисковый запрос" и получают уведомление при появлении новых объявлений (может иметь смысл для барахолки). То есть, вместо ...
    Метки: поиск
    Категории
    Софт
  3. Подготовка к автокалибровке ПИД-а на бормашинках

    10.10.2018 в 21:21 (Тарахтелка)
    Сегодня без графиков, залью по окончании, когда полностью закончим. А пока новые леденящие душу подробности .

    Как известно, для вычисления коэффициентов ПИ-регулятора, надо подать на девайс "импульс" и померить время разгона и торможения. Удивительно, но время торможения оказалось меньше времени разгона. Если б не видел графики лично - не поверил бы. Но нам это только на пользу - торможение не будет мешать поджимать коэффициенты регулятора посильнее. А вот с самими измерениями есть нюансы.

    Сигнал ОЧЕНЬ шумный. Если посмотреть ...

    Обновлено 10.10.2018 в 23:28 [ARG:5 UNDEFINED]

    Категории
    Железо
  4. Опять тюнили измерялку скорости

    29.09.2018 в 03:01 (Тарахтелка)
    Залил обновленные графики, поправил инструкции, то-сё. Все-таки график измерения скорости пришлось исправлять более серьезно.

    Как уже писал, в середине графика скорости есть аномальный провал. Из-за него пришлось сильно разжимать коэффициенты PI-регулятора, что не приемлемо. Поэтому стали думать, как быть. Интерполяция полиномом тут не прокатывает, так как она борется с шумами, а не с откровенно кривыми исходными данными.

    Т.к. с нормальными идеями туго, решили временно обойтись "магическими константами" - на глаз разметили диапазоны, где измерения заслуживают доверия, а остальное "достроили". Улучшать надо, но времени нет. Как-нибудь потом. Получилось так:
    • На низких оборотах выбрали интервал ~ 0.2-0.4 от максимума, и провели прямую, достроив ноль (стандартной полиномиальной регрессией).
    • На высоких оборотах (фаза 0.6-1.0) просто взяли 3 точки, там шаманить особо нечего.
    • Дырку достроили сплайном
    https://github.com/speedcontrols/ac_...aster/doc/data ...
    Категории
    Железо
  5. Вроде добили измерялку скорости

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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