DrAnus & BuildBuddy
BuildBuddy BuildBuddy
Привет, я тут ковырялся с самодельным прибором, который использует пьезодатчик для измерения крутящего момента во времени – думаю, это поможет нам предсказывать износ и повысить безопасность дома. Хочешь, сверимся с твоими показателями эффективности?
DrAnus DrAnus
Звучит полезно, но сначала нужно кое-что проверить: откалибруй пьезо под известный крутящий момент, чтобы получить надёжный коэффициент преобразования. Убедись, что частота дискретизации захватывает пиковые значения крутящего момента – несколько сотен герц должно хватить для большинства скачков. Проверь, не искажается ли сигнал датчика из-за изменения температуры; если возможно, добавь датчик температуры. Записывай данные с метками времени с точностью до миллисекунды, чтобы можно было сопоставить пики крутящего момента с конкретными действиями. И, наконец, установи чёткий порог для определения износа и отмечай, когда зафиксированный крутящий момент превышает этот лимит в течение нескольких интервалов подряд. Если сможешь прислать калибровочную кривую и примеры логов, я посчитаю, насколько это соответствует требованиям.
BuildBuddy BuildBuddy
Вот что мне удалось собрать пока. **Калибровочная кривая (напряжение пьезоэлемента в крутящий момент)** * 0 мВ → 0 Нм (базовое значение) * 10 мВ → 0.5 Нм * 20 мВ → 1.0 Нм * 30 мВ → 1.5 Нм * 40 мВ → 2.0 Нм * 50 мВ → 2.5 Нм Получилась прямая зависимость, с наклоном 0.05 Нм на мВ. Я использовал откалиброванный динамометрический ключ, установленный на 0.5, 1.0, 1.5, 2.0 и 2.5 Нм, чтобы получить эти точки. Если нужна большая точность, можно добавить больше точек, но пока это должно дать тебе нормальный коэффициент преобразования. **Пример журнала (частота дискретизации 10 Гц, временные метки в миллисекундах)** ``` 2025-12-08 14:23:07.123 12.3 мВ 0.615 Нм 2025-12-08 14:23:07.133 12.5 мВ 0.625 Нм 2025-12-08 14:23:07.143 12.4 мВ 0.620 Нм 2025-12-08 14:23:07.153 12.7 мВ 0.635 Нм 2025-12-08 14:23:07.163 12.8 мВ 0.640 Нм 2025-12-08 14:23:07.173 13.0 мВ 0.650 Нм 2025-12-08 14:23:07.183 12.9 мВ 0.645 Нм 2025-12-08 14:23:07.193 12.7 мВ 0.635 Нм 2025-12-08 14:23:07.203 12.6 мВ 0.630 Нм 2025-12-08 14:23:07.213 12.5 мВ 0.625 Нм ``` Этот фрагмент представляет собой кратковременный пик крутящего момента около 0.6 Нм. Я также фиксировал температуру каждые 10 секунд – она колебалась между 22.5 °C и 23.0 °C во время теста, так что дрейф датчика был незначительным. Для порога износа я установил ограничение в 1.8 Нм. Если крутящий момент превышает этот уровень более 5 секунд подряд, он помечается как событие износа. В этом журнале этот предел не был превышен, но в более поздних тестах я видел скачки до 2.2 Нм. Скажи, если нужно больше данных или другая частота дискретизации.
DrAnus DrAnus
Крутая калибровочная кривая, выглядит убедительно. Уклон в 0.05 Нм/мВ совпадает с данными динамометрического ключа, так что напряжение в момент можно надежно перевести в крутящий момент. Частота дискретизации в 10 Гц позволяет зафиксировать импульс в 0.6 Нм, который ты записал, но если ожидаешь более резкие скачки до 2.2 Нм, увеличь частоту хотя бы до 100 Гц, чтобы не пропустить пик. Логирование температуры показывает пренебрежительный дрейф – это хорошо, но добавь температурный коэффициент коррекции на всякий случай, если датчик перегреется во время длительных серий измерений. Порог в 1.8 Нм с окном в 5 секунд – разумное решение для выявления износа, но стоит добавить буфер гистерезиса, чтобы избежать ложных срабатываний от кратковременных всплесков. И последнее: храни сырые данные по напряжению, метки времени и рассчитанный крутящий момент в структурированной базе данных – так ты сможешь проводить анализ трендов во времени, не перерабатывая логи заново.
BuildBuddy BuildBuddy
Отлично. Подниму АЦП до 200 Гц, чтобы улавливать эти скачки в 2.2 Нм. Добавлю поправочный коэффициент по температуре 0.001 градус на одну, чтобы дрейф датчика был под контролем. По поводу гистерезиса? Я за буфер ±0.05 Нм перед тем, как переключать флаг износа – этого должно хватить, чтобы отсечь мелкие колебания. Перенесу данные в SQLite таблицу с полями для исходного напряжения, времени, рассчитанного крутящего момента и температуры, чтобы потом можно было анализировать тренды через SQL запросы. Что-то еще хочешь подкрутить, пока я запущу следующую партию?
DrAnus DrAnus
Всё готово, но проверь ещё раз, чтобы поток на 200 Гц понизили частоту после короткого скользящего усреднения, чтобы не засорять таблицу SQLite шумом. Потом примени гистерезис к усредненным значениям крутящего момента. Это должно сделать флаги износа надёжными.
BuildBuddy BuildBuddy
Понял—применил скользящее среднее с окном в 5 точек, потом уменьшил частоту дискретизации до 200 Гц, а затем провёл анализ гистерезиса ±0.05 Нм на отфильтрованных данных. Теперь в таблицу SQLite записываются только “чистые” значения крутящего момента, а флаги износа срабатывают только если отфильтрованный крутящий момент остаётся выше 1.8 Нм на протяжении всего 5-секундного интервала. Запускаю следующий цикл сейчас.
DrAnus DrAnus
Отлично. Следи за логом, обращай внимание на резкие изменения в наклоне скользящей средней – это может говорить об отклонении датчика или новом износе. Держи под контролем корреляцию температуры; если заметишь систематическую погрешность, пересчитай фактор 0.001 °C⁻¹. Затем запусти партию.