Давайте без лирики про "деды завещали тиристор". Напарник занимается разработкой намного более сложных приводов, и очень хорошо разбирается что делать можно, а что нельзя. В этом вопросе я ему полностью доверяю.
Сейчас гоняет бормашинку через латр с выпрямителем и конденсатором. Нормально все пашет. Правда выигрыш по теплу не очевиден. Зато вылез интересный момент - явно видны пульсации тока, пропорциональные оборотам (из-за коммутаций ротора)
Пока будет мерить дальше и смотреть спектр. Есть шанс через фурье напрямую частоту вытянуть. Даже если производительности для реалтайма не хватит - можно тихой сапой на ходу докалибровать противоэдс-ную вычислялку.
Сейчас еще трудно что-то сказать, надо больше данных набрать.
Пока такие результаты:
- Странно, но на постоянке разницы по теплу обнаружить не удалось. По максимальной скорости вроде тоже. Вроде гремит поменьше, но это не точно (с)
- Пульсации тока, пропорциональные оборотам ~25% от амплитуды. Точно должны выделиться. Если убрать сглаживание после выпрямителя, добавится еще 100 герц, но это фильтруется элементарно.
- Диапазон интересующих частот для бормашинки - 2-10 килогерц. Конечно зависит от оборотов и количества полюсов. Но все сетевые бормашинки в этом плане достаточно похожи (плюс-минус лапоть).
Спектр сигнала (питание от сглаженного напряжения):
Диапазон на осцилографе нормально не выбрать, но видно что начало пустое, потом пик от оборотов и дальше гармоники. Такое алгоритмы "pitch detection" должны нормально хавать, но там надо отдельно разбираться.
Из непонятного - как делать измерения. Вроде частота выборок желательна раз в 5 больше измеряемой. То есть конкретно для бормашинок - 50 килогерц. И это надо синхронизировать с ШИМ, потому что мерить ток реально только при открытом ключе.
Единственный вменяемый вариант, который вижу - шим на 50 килогерц задирать, и делать по 1 измерению на период. Но это как-то... При фронтах 30ns =› плюс 0.5ватта динамических потерь на токе 1A в сети 220V. Впритык для сети 110 вольт будет.
Ток и спектр на тиристорном регуле:
Колебания от вращения есть, но спектр основательно загажен. Возможно, если пропустить через ФНЧ, станет получше, но все равно мутновато.
Возвращаясь к питанию от постоянки. Пока получается такая математика:
- Выборку делаем ближе к верхушке, чтобы не нахватать гармоник от "острого перехода" в нуле.
- Прогоняем выборку через ФНЧ со срезом 200 герц.
- Дальше берем перестраиваемый фильтр на 500-15000Hz и методом половинного деления находим минимальную частоту, когда с выхода начинает идти сигнал. Это и будет искомая частота.
По перестраиваемым фильтрам. Нам нужна точность ~ 1% от частоты оборотов (~ 10 итераций). Поэтому, чтобы сэкономить на вычислениях генерируем сетку частот с переменным шагом, и по ней строим:
- коэффициенты рекурсивного фильтра (2-3 шт)
- шаг прохода по выборке
По мере понижения частоты - увеличиваем шаг прохода по сырым данным, чтобы не считать лишнего. ~1000 точек по 8-10 байт =› ~ 10 килобайт флеша. Терпимо.
Получается без фурье, и на глаз довольно дешево по CPU. Есть еще всякие дополнительные ухватки вроде трекинга частоты, чтобы сузить окно поиска, но скорее всего и без оптимизаций прокатит.
Надо будет загнать диаграммы тока на компьютер, и слепить скриптов, по-быстрому проверить математику - подобрать частоту дискретизации и размеры выборок.
@genao, случайно нет возможности сдампить на компьютер замеры тока болгарки для пульсирующего питания? Видимо латр + диодный мост + мотор (шунтированный быстрым диодом), но без сглаживающего конденсатора.
Надо с частотой дискретизации не меньше 1mHz, длительность 5-10сек. В идеале для 3 уставок оборотов - min / middle / max.
Если есть болгарка помощнее - это совсем здорово, если нет - любая сойдет.
Мне больше из любопытства. Когда буду дампы с бормашинки прогонять через вычислялку, заодно проверить что на болгарке чего-то принципиально нового не полезло.
https://github.com/speedcontrols/dc_...r/doc/raw_data
Залили дампы тока, для разных моделей и скоростей. Можно в эксель нужные диапазоны импортировать и графики лепить.
У хильды какие-то левые прострелы бывают. Вообще шума многовато, но вроде фильтры десятого порядка должны помочь.
Будем думать, как сетевые пульсации отпилить, а потом как частоту искать. Как вариант - сначала грубо искать половинным делением, а потом натравить узкий полосовой фильтр чтобы одна синусоида осталась, и дальше по zero cross.