Текущее время: 30 окт 2026, 18:01



Ответить на тему  [ Сообщений: 97 ]  На страницу Пред.  1, 2, 3, 4, 5
 А не построить ли диностенд своими руками? 
Автор Сообщение

Зарегистрирован: 12 ноя 2012, 20:10
Сообщения: 609
Откуда: Тольятти
Мотоцикл(ы): FXST 2006г.
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
GELIK писал(а):
Fed писал(а):
А как хобби - это надо ресурсов (денежных и временных) кучу и шило в зад. ... а красоту конструкции мало кто оценит...
Удачи в завершении проекта!


Ничего не хочу сказать, но первый стенд уже продан еще полгода назад. Этот допилю и тоже на продажу. Сейчас третий стенд в стадии разработки)))) Конечно третий реализовывать буду после продажи этого, но там план грандиозный)))) Кстати я посмотрел на стенд Dynomax на мотовесне... 2 миллиона за это удовольствие так себе ценничек.


Ну хорошо, я не верно выразился на счет "ни кто не оценит".
Цена "оценки" и объемы продаж не позволяют этому "бизнесу" жить самостоятельно.


28 апр 2026, 07:44
Профиль

Зарегистрирован: 14 авг 2014, 11:35
Сообщения: 3375
Откуда: Королев, Владимир
Мотоцикл(ы): FLHTC1991; HondaSlasher400
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
ну если удается сбыть старые версии выше чем по цене лома, то тоже не плохо... А если их еще и по назначению используют, то это уже где-то наверху известной пирамиды


28 апр 2026, 12:17
Профиль ICQ

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
grub писал(а):
ну если удается сбыть старые версии выше чем по цене лома, то тоже не плохо... А если их еще и по назначению используют, то это уже где-то наверху известной пирамиды

Зачем ты такой злой?))) Неужели все, что сделано у нас имеет только один путь - в чермет? А как же импортозамещение??? Ты в курсе, что масса людей у нас в стране делает нагрузочные стенды из дерьма и палок? В ход идут даже кислородные баллоны!!! А самое интересное - все это прекрасно работает и приносит людям доход. Или в твоем мире американские мотоциклы должны настраиваться только на Американских или в крайнем случае, чешских стендах?)))) А прикинь, что у нас тут, совсем недалеко от Москвы, делали запчасти для харлеев?))))

Изображение

Изображение

Изображение


29 апр 2026, 13:30
Профиль

Зарегистрирован: 14 авг 2014, 11:35
Сообщения: 3375
Откуда: Королев, Владимир
Мотоцикл(ы): FLHTC1991; HondaSlasher400
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
Потому, что сам их делаю, только в ИТ, и палок дают мало. Приходится изворачиваться)

PS. А по поводу фрезированных деталей, да, слышал. По моему тут про них писали и ссылки на журналы давали...


29 апр 2026, 14:18
Профиль ICQ

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
grub писал(а):
Потому, что сам их делаю, только в ИТ, и палок дают мало. Приходится изворачиваться)

PS. А по поводу фрезированных деталей, да, слышал. По моему тут про них писали и ссылки на журналы давали...


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

Изображение

И таких историй масса)))


29 апр 2026, 15:02
Профиль

Зарегистрирован: 16 окт 2021, 22:10
Сообщения: 149
Откуда: Стольный град Владимир
Мотоцикл(ы): FLHTCUI Shrine'05
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
фотки не кажет :(


29 апр 2026, 16:23
Профиль

Зарегистрирован: 14 авг 2014, 11:35
Сообщения: 3375
Откуда: Королев, Владимир
Мотоцикл(ы): FLHTC1991; HondaSlasher400
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
у меня днем тоже не показывало, только текстом проникался. А сейчас вижу. Последняя - агонь (и вспышка лучей злобы)!


29 апр 2026, 19:14
Профиль ICQ

Зарегистрирован: 16 окт 2021, 22:10
Сообщения: 149
Откуда: Стольный град Владимир
Мотоцикл(ы): FLHTCUI Shrine'05
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
на этой странице последнюю только и вижу :D :?


08 май 2026, 08:12
Профиль

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
Ну что, парни... Два месяца меня не тянуло в гараж... А делов-то было... Но если честно - доделал переднюю часть стенда, что бы можно было и рядом встать, и мот что бы при заезде не провалился))) Но вот сегодня я все же сподобился организовать въезд на стенд и загнать свой мот!!! Сейчас начну выставлять барабан с тормозом в одну ось и что бы на замерах мот в сторону не уводило))) Так что, надеюсь, скоро подкину забор выхлопных и обдув двигателя, а уж позже, после прогонов тестовых, займусь нормальным воздухообменом в гараже и звукоизоляцией)))) Но пока вперет, с микрометром, стойкой и гаечными ключами!!!!





Изображение

Изображение


02 июл 2026, 16:13
Профиль

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
Да, кстати, два месяца я не просто баклуши бил, а немного возился с электроникой. Так сказать в свете последнего повышения цен на лицензии всеми любимого ПауэрВижн задумался я, дополнительно, поковырять как кан, так и j1850 на предмет самостоятельной настройки. А всего-то, разработав датчик съема наличия искры в ВВ проводе для синхронизации оборотов двигателя с оборотами барабана стенда, захотелось мне брать сырые данные из шины мотоцикла... Что из этого получилось - скорее всего в отдельной теме))) Но для затравочки вот картинка

Изображение


02 июл 2026, 16:25
Профиль

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
О как. Я так понимаю, что картинки нужно заливать на какое-то отечественное хранилище?))))


02 июл 2026, 20:44
Профиль

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
Что-то я, парни, выпал из описательной части)))) Баклуши не бил - все время, практически, за компом да паяльником. Количество микросхем и остальных элементов в доме выросло неимоверно))) Суть, короче, такова - построить железо это, конечно, немалый этап, но оно будет стоять и ржаветь, если нет программного обеспечения)))) Покупать абы какое не хотелось, а платить немалые деньги за чужое, адаптировать под свое железо, упираться и все равно понять, что нужна узкоспециальная программа со всеми удобствами - уже доказано моими мытарствами)))) Не существует универсальной вещи, которая бы подходила бы всем и подо все. Я приобрел недорого ПО отечественной разработки, но не зашло оно мне. Есть там нюансы))))
Но мы с вами живем в удивительную эпоху развития программного кода под названием ИИ, который изумительно заменяет часы поиска необходимой информации как в сети так и в библиотеке. Такая прям настольная "Ленинская библиотека"))))
Касаться темы написания кода я не буду - в интернете полно хайпа на тему как завайбкодить приложение за вечер и толпы блогеров, продающих курсы как подключить Клод к Ексель))))) Но как анализ и построение прогнозов ии сильно помогает, что приятно меня удивило))))
Так вот, пользуясь всеми благами современной цивилизации был собран огромный пласт исследований, обсуждений, примеров и алгоритмов расчетов, необходимых в глубоком понимании как из моего железа выжать максимально правдоподобные показатели мощности и момента замеряемого мотоцикла, а не выдавать показания в попугаях или единорогах, как тут шутят некоторые персонажи(и я в том числе). Так же отработан и алгоритм настройки испытуемых)))) Жаль, конечно, что наступила зима, но, судя по этим трем месяцам, пролетит она незаметно, а воплотить в реальное железа мне ой как много нужно)))
Еще одно, что отбило мне желание заниматься блогерством, это то, что тема на столько спецкифична, что понятна она будет не многим, а интересна и того меньшему количеству пользователей)))) Повествование должно быть легким, увлекательным, с долей эротики и криминала. А тут одни датчики, микросхемы и пороги срабатывания, да вероятностные ошибки, джиттеры систем и еденицы квантования. Так что, если это кому-то интересно - дайте знать и я потихонечку расскажу как от автомобильных датчиков положения коленвала я бросился в сторону оптических энкодеров, а потом вернулся к датчику хола и реперному диску, но через расчеты самодельного оптического датчика оборотов)))) Хотя я прам сам вижу как это скучно))))

Ну а напоследок вам шутка как я отвечаю людям на их вопрос нашел ли я способ поличить лицензию ПВ дешевле чем у изготовителя. Конечно нашел - я отправил фоторафию ПВ и фотографию мотоцикла в Гигачат(не путать с Алисой) и в ответ он мне прислал лицензию. Все как полагается - на бумаге с водяными знаками и синей печатью.


Изображение


15 окт 2026, 19:40
Профиль

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
И снова здравствуйте, мои дорогие полтора подписчика, кому интересен процесс изготовления самодельного диностенда))))
В принципе, стандартное приветствие для поста какого-нибудь блогера, претендующего на наличие чувства юмора и пытающегося втереться в доверие к аудитории... Если бы я эту тему писал лет 15 назад - отбоя от комментов, я уверен, не было бы. Но сейчас и стендов стало больше и настройщики прокачались. Как говориться - отдал дань уважения современным трендам - теперь к главному))
За 4 месяца, которые прошли после того, как я наконец-то обустроил себе кабинет и засел за комп, количество опытов, знаний и добытой информации увеличилось на столько, что попытка написать хоть какой-то пост превращается в двухдневную муку, а количество букв просто зашкаливает. Посему я решил не выкладывать свои изыскания разделами, которые тянут минимум на курсовую работу в 40 тысяч знаков, а буду делать небольшие публикации. Ну и всегда раб если кто-то проявит интерес к моему бестолковому хобби)))


Вчера, 13:33
Профиль

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
Часть 1 из 4
От импульсов к лошадиным силам. Или как я хотел просто измерить обороты, а пришлось вспомнить физику, математику и немного помучить микроконтроллер :)
Продолжаю строительство диностенда.
И пока механическая часть постепенно обрастает железом, решил заняться ещё одной интересной задачей — разработкой собственной программы телеметрии.
Причём речь не только о красивых стрелочных приборах, графиках мощности и крутящего момента.
Нарисовать стрелку, которая бодро бегает по шкале, не такая уж сложная задача.
Гораздо интереснее понять, насколько правду она показывает. :)
Ведь никаких датчиков лошадиных сил, как известно, не существует.
А жаль!
Прикрутил бы такой датчик к ролику, подключил три провода и пошёл пить кофе.
Но приходится идти более сложным путём.
Попробую рассказать, с чего начинал, какие проблемы обнаружились и почему задача измерения оборотов оказалась гораздо интереснее, чем представлялось первоначально.
Немного физики
Принцип работы инерционного диностенда довольно прост.
Двигатель через колесо раскручивает массивный ролик, обладающий определённым моментом инерции.
Чем больший крутящий момент передаётся на ролик, тем быстрее при прочих равных условиях увеличивается его угловая скорость.
Кинетическая энергия вращающегося тела определяется формулой:
E = ½ × J × ω²
Здесь J — момент инерции в кг·м², а ω — угловая скорость в рад/с.
Если мы знаем момент инерции и можем определить угловое ускорение ролика, то получим динамический момент:
M = J × α
где α — угловое ускорение, рад/с².
А мощность, затрачиваемая на ускорение вращающихся масс:
P = M × ω = J × α × ω
Вот, собственно, и вся основная физика инерционного диностенда.
Конечно, это базовая модель.
В реальном стенде есть механические потери, другие вращающиеся массы, а мощность непосредственно на коленчатом валу двигателя не равна мощности, передаваемой ролику.
Однако сейчас речь именно об измерениях, поэтому вопросы учёта потерь пока оставим в стороне.
Обратите внимание на один важный момент.
Для вычисления мощности недостаточно просто знать скорость вращения ролика.
Необходимо определить, насколько быстро эта скорость изменяется.
То есть вычислить ускорение.
Именно с этого момента простая задача измерения оборотов начинает постепенно превращаться в довольно увлекательное издевательство над собственным мозгом. :)
Первая идея — оптический энкодер

Изображение

Первоначально я рассматривал использование оптического энкодера высокого разрешения.
Логика вполне понятная: чем больше импульсов за оборот, тем подробнее мы можем отслеживать вращение ролика.
Современные энкодеры способны выдавать сотни и тысячи импульсов, а при квадратурном декодировании можно получать ещё больше отсчётов.
Казалось бы, ставим энкодер с максимальным разрешением, подключаем к микроконтроллеру и наслаждаемся точностью.
Но, как обычно, выяснилось, что большое количество цифр ещё не означает большого количества правды.
Метод №1. Считаем импульсы
Самый очевидный способ измерения оборотов — подсчитывать количество импульсов за фиксированный промежуток времени.
Например, каждые 10 миллисекунд контроллер считает поступившие импульсы и вычисляет скорость.
Формула простая:
RPM = 60 × N / (K × T)
Здесь N — количество зарегистрированных импульсов, K — число учитываемых импульсов за один оборот, T — длительность измерительного окна в секундах.
Этот способ называют M-method, или методом подсчёта импульсов.
Теперь немного математики.
Предположим, энкодер обеспечивает 1024 учитываемых отсчёта за оборот, а измерительное окно составляет 10 миллисекунд.
При скорости 60 об/мин за это время должны пройти:
N = 1024 × 60 / 60 × 0,01 = 10,24 импульса.
Но контроллер, зараза такая, дробные импульсы регистрировать отказывается. :)
Поэтому в одном окне он насчитает 10, а в другом 11.
Посмотрим, что получится.
При 10 импульсах:
RPM = 60 × 10 / (1024 × 0,01) = 58,59 об/мин
При 11 импульсах:
RPM = 60 × 11 / (1024 × 0,01) = 64,45 об/мин
А теперь самое интересное.
Реальная скорость вращения составляет 60 об/мин, но наши измерения показывают:
10 импульсов: 58,59 об/мин, ошибка −2,34%.
11 импульсов: 64,45 об/мин, ошибка +7,42%.
И это при совершенно постоянной скорости вращения!
Ролик спокойно крутится с частотой 60 об/мин и даже не подозревает, какие страсти происходят внутри микроконтроллера.
Один дополнительный импульс изменяет результат сразу на:
ΔRPM = 60 / (1024 × 0,01) = 5,86 об/мин.
Проблема называется квантованием измерения.
Естественно, возникает желание увеличить время подсчёта.
Например, вместо 10 миллисекунд использовать 100.
Тогда получаем:
ΔRPM = 60 / (1024 × 0,1) = 0,586 об/мин.
Шаг квантования уменьшился в десять раз!
Замечательно!
Правда, теперь мы измеряем среднюю скорость за более длительный интервал.
Если в течение этого времени ролик заметно ускорился, информация о быстрых изменениях скорости частично потеряется.
Посмотрим на ситуацию при разных оборотах, сохранив измерительное окно 10 мс.
60 об/мин: 10,24 импульса, показания 58,59 или 64,45; 600 об/мин: 102,4 импульса, показания 597,66 или 603,52; 3000 об/мин: 512 импульсов, показания 3000 при идеальных условиях.
На высоких оборотах относительное влияние одного лишнего или недостающего импульса становится меньше, но сам шаг квантования остаётся прежним — те же 5,86 об/мин.
Причём третья строка не означает, что на 3000 об/мин измерение всегда идеально.
Просто в выбранном примере за 10 мс укладывается целое количество периодов.
В реальном измерении присутствуют границы окна, нестабильность скорости, временные погрешности и другие факторы.
Получается своеобразный обмен: уменьшаем погрешность квантования, но ухудшаем временное разрешение.
Для обычного тахометра такое поведение вполне может быть приемлемым.
Но диностенд-то интересует не только скорость.
Ему ещё и ускорение подавай!


Вчера, 13:49
Профиль

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
Часть 2. Измерение периода и гуляющая пила
Метод №2. Измеряем время
Есть другой способ — измерение времени между импульсами.
Он называется T-method, или методом измерения периода.
Вместо того чтобы подсчитывать импульсы в определённом временном окне, фиксируем моменты их появления и определяем продолжительность интервала между ними.
Если угловое расстояние между соседними метками известно и одинаково, скорость вычисляется по формуле:
RPM = 60 / (K × Δt)
где Δt — время между соседними импульсами.
Современные микроконтроллеры имеют аппаратные таймеры с очень высоким временным разрешением.
Поэтому измерять интервалы можно весьма точно.
Теперь мы не зависим от того, сколько целых импульсов попало в произвольное временное окно.
Красота!
Но только до тех пор, пока не начинаешь внимательнее разбираться в природе самих импульсов.
Давайте снова возьмём энкодер с разрешением 1024 отсчёта за оборот и посмотрим, какие интервалы между импульсами он формирует при разных оборотах.
60 об/мин: 976,56 мкс; 600 об/мин: 97,66 мкс; 3000 об/мин: 19,53 мкс; 6000 об/мин: 9,77 мкс между событиями.
Теперь допустим, что частота счётчика таймера микроконтроллера составляет 8 МГц.
Продолжительность одного такта такого таймера:
1 / 8 000 000 = 0,125 мкс = 125 нс.
На скорости 60 об/мин один такт составляет приблизительно 0,0128% измеряемого периода.
А вот на 3000 об/мин уже около 0,64%.
Если ошибка измеренного интервала составляет один такт, то относительное изменение вычисленной скорости будет примерно таким же по модулю.
То есть высокая разрешающая способность энкодера сама по себе не гарантирует столь же высокой точности определения мгновенной скорости.
Можно, конечно, повысить частоту таймера.
Например, при частоте 120 МГц продолжительность одного такта будет составлять всего:
1 / 120 000 000 ≈ 8,33 нс.
Для того же интервала 19,53 мкс относительная величина одного такта уменьшится примерно до 0,043%.
Уже значительно интереснее!
Однако здесь мы рассматриваем только погрешность квантования времени.
Причём для примера принимаем ошибку измеренного интервала в пределах одного такта.
Само электрическое событие тоже может иметь временную погрешность, совершенно не связанную с разрешением счётчика.
И если фронт датчика появляется с некоторым разбросом по времени, увеличение частоты таймера вовсе не обязано улучшить конечный результат.
Более того, при слишком большом количестве отсчётов за оборот измерения соседних импульсов происходят через очень короткие интервалы.
Поэтому ошибки их регистрации становятся относительно более значимыми.
Возникает довольно парадоксальная ситуация.
Мы увеличиваем разрешение энкодера ради повышения точности, но при вычислении скорости по каждому соседнему импульсу можем получить большую чувствительность к временным погрешностям.
Разумеется, это не означает, что энкодеры высокого разрешения плохи.
Можно измерять время прохождения нескольких интервалов, использовать комбинированные методы и специальную обработку.
Просто количество импульсов — лишь одна из характеристик всей измерительной системы.
Существуют и M/T-методы, объединяющие подсчёт импульсов и измерение времени.
Они позволяют уменьшить часть недостатков двух базовых подходов.
Но есть проблема, которую одним увеличением разрешения энкодера или частоты таймера не решить.
Это точность формирования самих событий.
Переходим к реперному диску
В процессе дальнейших размышлений я решил рассмотреть другой вариант — металлический зубчатый реперный диск и магнитный датчик.
Идея простая как мир. И эту систему применяют большинство производителей стендов.
На вращающейся части устанавливается диск с равномерно расположенными зубьями.
Неподвижный датчик регистрирует их прохождение.
Диск можно изготовить с весьма высокой геометрической точностью, что и был мной осуществлено - диск вырезали на электроэрозионном станке, и быстро и очень точно)))

Изображение

Получилось вот такое чудо

Изображение

И вот с помощью вот такой шикарной конусной втулки

Изображение

Я закрепил этот диск на валу барабана

Изображение


Если ролик вращается равномерно, зубья расположены через одинаковые углы, то и временные интервалы между соответствующими событиями должны быть одинаковыми.
Во всяком случае, именно так утверждает геометрия.
А вот электроника, как выяснилось, имеет на этот счёт собственное мнение. :)
Почему идеальный зуб ещё не означает идеальный импульс
Дело в том, что магнитный датчик регистрирует не геометрический край зуба как таковой.
Он реагирует на изменение магнитного поля.
По мере приближения металлического зуба магнитное поле изменяется постепенно.
В какой-то момент внутренняя электроника датчика принимает решение переключить выход.
Для этого используются пороги срабатывания, гистерезис, а в некоторых датчиках ещё и различные алгоритмы обработки магнитного сигнала.
И здесь возникает интересная особенность.
Момент электрического переключения вовсе не обязан идеально совпадать с прохождением геометрического края зуба.
На него могут влиять величина воздушного зазора, форма зуба, распределение магнитного поля, биение диска и особенности самой электроники.
Причём фронт на выходе датчика тоже не возникает мгновенно.
Его дальнейшее прохождение через электрические цепи может добавлять собственные задержки.
Часть этих отклонений повторяется на каждом обороте.
Часть зависит от текущих условий.
Кроме того, существует случайный временной разброс регистрации фронтов — джиттер.
Получается довольно забавная ситуация.
Мы можем изготовить диск на хорошем станке, выдержать размеры, проверить биение, а потом обнаружить, что электроника регистрирует его прохождение вовсе не с той идеальностью, которую мы ожидали.

Изображение

И если внимательно присмотреться, то длина зуба в несколько раз короче впадины... И это при идеальной геометрии зуба!!!!
Есть и ещё одна тонкость.
Если регистрировать как передний, так и задний фронт зуба, расстояния между ними в угловых координатах вовсе не обязаны быть одинаковыми.
Геометрическая ширина зуба, форма магнитного поля и разные пороги переключения способны создать чередование более коротких и более длинных интервалов.
При этом реальная скорость вращения может оставаться совершенно постоянной.
Но дальше обнаружилось нечто ещё более интересное.
Пила, которая решила отправиться на прогулку :)
Во время экспериментов я обратил внимание на одну любопытную особенность.
Паразитные колебания на графике не просто повторялись.
При изменении оборотов их рисунок начинал смещаться относительно последовательности импульсов датчика.
Причём изменялось и количество зарегистрированных событий, укладывающихся в один период наблюдаемых колебаний.
А вот это уже интереснее!
Предположим, что наш зубчатый диск имеет небольшую геометрическую погрешность.
Например, один зуб расположен чуть ближе к соседнему, другой — немного дальше.
Такая погрешность будет привязана к определённому угловому положению диска.
Следовательно, её характерный рисунок должен повторяться в одних и тех же местах каждого оборота.
При увеличении скорости временные интервалы сократятся, но положение геометрического дефекта относительно зубьев никуда не денется.
В наших измерениях картина оказалась другой.
Наблюдаемая пила не была жёстко привязана к одному и тому же положению диска.
По мере изменения оборотов её фаза относительно последовательности событий смещалась, а период в отсчётах тоже изменялся.
То есть проблема явно не сводилась к одному неидеально изготовленному зубу.
Для объяснения пришлось рассматривать уже динамические процессы.
Например, колебания зазора между датчиком и диском, механические вибрации, особенности магнитного переключения и формирования электрических фронтов.
Интересно, что если какой-нибудь периодический процесс не синхронизирован с оборотами ролика, на графике может появиться эффект, напоминающий биения.
Обороты изменяются, частота прохождения зубьев тоже, а паразитный процесс изменяется по своему закону.
В результате его рисунок постепенно смещается относительно зубьев.
Это один из возможных механизмов такого поведения, но далеко не единственный.
Похожая картина может возникать и вследствие дискретизации, когда непрерывно изменяющиеся периоды попадают на целочисленную сетку тактов таймера.
Здесь важно учитывать ещё одну особенность: если электроника задерживает все фронты на одно и то же время, такая постоянная задержка при вычислении интервала между ними сокращается.
Но если задержка разных фронтов отличается или меняется от оборота к обороту, она уже непосредственно влияет на результат.
Другими словами, само по себе высокое временное разрешение таймера никак не гарантирует, что он измеряет именно те физические интервалы, которые мы хотели получить.
Таймер совершенно честно фиксирует электрические фронты.
А вот насколько честно сами фронты отражают вращение ролика — уже другой вопрос.
Самое неприятное, что для обычного тахометра некоторые из этих отклонений могли бы оказаться совершенно незаметными.
Но мы ведь строим диностенд!


Вчера, 20:17
Профиль

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
Часть 3. Точность тактирования STM32H755
Ещё один неожиданный участник эксперимента — часы самого микроконтроллера
Когда начинаешь разбираться с точностью временных измерений, довольно быстро обнаруживается ещё один источник потенциальных неприятностей.
Оказывается, недостаточно иметь хороший датчик и высокочастотный аппаратный таймер.
Нужно ещё быть уверенным, что сам таймер отсчитывает время с правильной частотой.
Для обработки измерений я использую микроконтроллер STM32H755.
Это достаточно мощный контроллер, обладающий высокопроизводительными ядрами, аппаратными таймерами и множеством периферийных блоков.
Казалось бы, чего ещё желать?
Но у него, как и у многих микроконтроллеров, есть несколько вариантов формирования тактовой частоты.
Один из них — внутренний высокочастотный RC-генератор, обозначаемый HSI.
Другой — использование внешнего источника тактирования HSE, в том числе сигнала, полученного от кварцевого генератора.
И здесь обнаруживается одна весьма интересная деталь.
64 МГц — это ещё не обязательно ровно 64 МГц
Встроенный HSI-генератор STM32H755 имеет номинальную частоту 64 МГц.
Но слово «номинальная» здесь играет довольно важную роль.
Согласно документации STMicroelectronics, при напряжении 3,3 В и температуре кристалла 30 °C частота HSI может находиться в пределах:
63,7–64,3 МГц.
То есть отклонение от номинальной частоты в этих условиях может достигать приблизительно ±0,47%.
А при изменении температуры добавляется ещё и температурный дрейф.
Для диапазона температуры кристалла от −20 до +105 °C производитель указывает изменение частоты относительно опорного значения до ±1%.
И это не означает, что микроконтроллер неисправен.
Он вполне укладывается в характеристики производителя.
Для многих обычных задач подобная точность совершенно приемлема.
Но мы собираемся измерять время, затем вычислять по нему скорость, ускорение и мощность.
И тут даже относительно небольшая ошибка частоты приобретает весьма интересный смысл.
Как ошибка часов превращается в ошибку оборотов
Допустим, что программа считает частоту таймера абсолютно точной, а реальный тактовый генератор работает на 0,5% быстрее номинала.
То есть:
fреальная = fноминальная × 1,005
За один и тот же физический промежуток времени таймер зарегистрирует на 0,5% больше отсчётов, чем ожидает программа.
Если она пересчитывает их в секунды, используя номинальную частоту, то получит завышенную длительность интервала.
Следовательно, рассчитанная скорость окажется заниженной.
При истинной скорости 3000 об/мин получим:
RPMрасчётная = 3000 / 1,005 ≈ 2985,07 об/мин
Ошибка составит почти 15 об/мин.
Причём речь идёт не о шуме датчика, не о кривом зубе и не о погрешности алгоритма вычисления периода.
Просто часы, которыми мы измеряем время, идут немного быстрее, чем предполагает программа.
Но дальше ситуация становится ещё интереснее.
Почему ошибка мощности может оказаться больше ошибки частоты
Вспомним формулу мощности инерционного стенда:
P = J × α × ω
Угловая скорость вычисляется по времени, поэтому при одинаковой относительной ошибке тактовой частоты её расчётное значение изменяется обратно пропорционально коэффициенту ошибки.
Но ускорение мы получаем как изменение скорости за единицу времени.
А значит, ошибка времени влияет на него уже дважды: сначала через вычисление скорости, затем через сам интервал дифференцирования.
Если все измерения последовательно используют одну и ту же ошибочную временную базу, то при постоянной относительной ошибке частоты ε:
ωрасчётная = ωреальная / (1 + ε)
αрасчётное = αреальное / (1 + ε)²
А поскольку мощность пропорциональна произведению ускорения на скорость:
Pрасчётная = Pреальная / (1 + ε)³
Вот это уже весьма любопытно!
При ошибке тактовой частоты +0,5% получим: ошибка вычисленной скорости примерно −0,50%, ускорения −0,99%, мощности −1,49%.
При ошибке частоты +1% расчётная мощность окажется заниженной приблизительно на 2,94%.
Разумеется, это математический пример для постоянного коэффициента ошибки и общей временной базы.
Если в программе используются разные источники времени или отдельные коррекции, зависимость может отличаться.
Но сам принцип хорошо показывает, почему к точности тактирования измерительного контроллера нужно относиться серьёзно.
Получается, что можно изготовить отличный реперный диск, поставить качественный датчик, использовать высокочастотный таймер и сложную математику, а затем получить систематическую ошибку просто потому, что не задумался, откуда контроллер берёт свои мегагерцы.
Красота! :)
Внутренний генератор или внешний кварц?
В нашем проекте этот вопрос оказался далеко не теоретическим.
На ранних этапах разработки использовалось тактирование от внутреннего HSI.
Позднее я стал экспериментировать с внешним источником тактовой частоты и изменением конфигурации системных частот.
Здесь есть небольшая техническая подробность.
На используемой отладочной плате NUCLEO-H755ZI-Q предусмотрена возможность установки отдельного кварцевого резонатора для основного STM32H755.
Однако в моей конфигурации внешний тактовый сигнал поступает от встроенного отладчика ST-LINK через его выход MCO.
Сам ST-LINK имеет кварцевую опору 25 МГц.
Казалось бы, вот он, точный источник!
Но и тут есть ловушка: в зависимости от конфигурации выход MCO может формироваться как от кварца, так и от внутреннего RC-генератора микроконтроллера ST-LINK.
Например, HSI/2 даёт 8 МГц от RC, а HSE/5 даёт 5 МГц от кварца 25 МГц.
Поэтому можно включить на STM32H755 режим HSE bypass, обрадоваться «внешнему тактированию» и получить RC-точность от соседней микросхемы. :)
Настройка MCO зависит от версии и конфигурации прошивки ST-LINK; источник нужно проверять, а на поддерживаемых версиях его можно выбрать через утилиту обновления.
В моём варианте используется HSE/5 = 5 МГц от кварцевой опоры ST-LINK.
Далее PLL формирует необходимые рабочие частоты, включая предусмотренные конфигурацией 120 МГц измерительного таймера.
Убедиться, что всё получилось, можно, выведя системную частоту STM32H755 на его собственный выход MCO и измерив её частотомером.
Важно, что сама по себе PLL не делает неточный источник времени точным.
Она позволяет получать требуемую частоту, но относительная ошибка опорного генератора при этом сохраняется.
Дополнительно необходимо учитывать характеристики самой PLL.
Для сравнения: допуск частоты типового кварца составляет единицы–десятки ppm.
Даже при 20 ppm относительная погрешность составит всего 0,002%.
При скорости 3000 об/мин это соответствовало бы примерно 0,06 об/мин ошибки от масштаба частоты, если рассматривать только этот фактор.
Это примерно на два порядка меньше возможных отклонений внутреннего RC-генератора.
При этом конкретная точность внешнего сигнала зависит от источника, из которого он действительно сформирован.
Как видно на примере ST-LINK, использование входа HSE само по себе ещё ничего не гарантирует.
Что показали эксперименты
В нашем проекте удалось проверить влияние организации тактирования не только теоретически, но и на лабораторных измерительных данных.
Источником импульсов служил отдельный STM32F407, воспроизводивший контролируемую последовательность событий без механического ролика и магнитного датчика.
Сравнили стабильные участки двух записей на близких режимах около 2300 об/мин: Run145 с внутренним HSI и Run148 с внешней кварцевой опорой через ST-LINK MCO (HSE/5).
В первом случае стандартное отклонение рассчитанной скорости составляло около 0,180 об/мин, во втором — 0,000390 об/мин.
Это уменьшение примерно в 462 раза!
Когда видишь такую разницу, сразу вспоминаешь, сколько времени потратил на поиски причин совсем в других местах. :)
Но торопиться с выводами нельзя: режимы не были абсолютно одинаковыми, а стандартное отклонение характеризует разброс, но не систематическую точность.
Кроме того, результаты зависят от двух независимых временных баз — генератора STM32F407 и измерительного контроллера STM32H755 — и особенностей обработки.
Поэтому нельзя утверждать, что один лишь кварц сделал измерительную систему в 462 раза точнее.
Кроме того, необходимо различать два явления.
Постоянная ошибка тактовой частоты прежде всего создаёт систематическое смещение результатов.
А вот кратковременная нестабильность частоты, фазовый шум, особенности формирования временных меток и взаимодействие с дискретным входным сигналом способны влиять уже на разброс измерений.
Поэтому смещающуюся пилу на графике нельзя объяснять только тем, что внутренний генератор вместо ровных 64 МГц выдаёт, например, 63,9 МГц.
Такая постоянная разница просто изменит масштаб измеренного времени.
Для возникновения сложной перемещающейся картины нужны дополнительные механизмы.
Но сам переход на более стабильную временную базу оказался важным шагом в работе над измерительной системой.
В результате пришлось прийти к довольно простому выводу: В цифровых измерениях точность определяется не только разрешением таймера, но и достоверностью самого эталона времени.
Ведь если наши часы идут неправильно, высокая частота их тиканья ситуацию не спасает.

Изображение

Этот график как раз отражает проблему тактирования. Изначально генератор просто формировал сигнал идентичный если бы барабан стенда раскручивался с постоянным ускорением. Красным это график с неправильным тактированием, а зеленым это уже четкие 5 МГц от кварца на программаторе. Ну и в итоге всех моих лабораторных опытов сам контроллер был переведен на частоту 400МГц, а таймер на 200МГц, что позволило привести квантование времени к 5 нс...
Вот такой у меня интересный секундомер получился...


Вчера, 20:30
Профиль

Зарегистрирован: 31 мар 2011, 22:34
Сообщения: 1530
Откуда: СВАО
Мотоцикл(ы): Road King
Непрочитанное сообщение Re: А не построить ли диностенд своими руками?
Часть 4. Ускорение, фильтры и наш метод
Превращаем маленькую ошибку в большую проблему
Вернёмся к ускорению.
Чтобы его определить, необходимо вычислить изменение угловой скорости за определённый промежуток времени:
α = (ω₂ − ω₁) / Δt
Теперь предположим, что реальная скорость увеличивается плавно, но измеренные значения содержат небольшие погрешности.
При вычислении ускорения мы вычитаем одно значение скорости из другого.
Вместе с реальным изменением скорости получаем разность ошибок измерения.
И чем меньше временной интервал, тем сильнее эти ошибки могут влиять на результат.
Если ошибки двух соседних измерений независимы и имеют одинаковое стандартное отклонение σω, то:
σα = √2 × σω / Δt
Получается довольно неприятная закономерность.
На графике скорости небольшая пила может выглядеть вполне безобидно.
Но после вычисления ускорения она способна превратиться в весьма внушительные колебания.
А поскольку мощность инерционного стенда напрямую зависит от ускорения, эти колебания начинают превращаться в совершенно виртуальные лошадиные силы.
Двигатель ещё ничего не подозревает, а программа уже добавила ему табун. :)
Здесь, кстати, важно различать характер погрешностей.
Постоянная ошибка масштаба тактовой частоты, о которой мы говорили выше, может привести к систематически неправильным значениям скорости и мощности.
А вот неповторяемые ошибки отдельных временных меток и локальные колебания оценок скорости способны порождать ложные пики ускорения.
Одна ошибка делает весь график немного неправильным по масштабу, другая начинает рисовать на нём зубцы и скачки.
И что особенно приятно, обе способны присутствовать одновременно.
Вот здесь становится понятно, почему простое получение большого количества импульсов совершенно не гарантирует правильного графика мощности.
Фильтрация. Когда красота требует жертв
Естественно, первая мысль — применить цифровые фильтры.
Получили график с колебаниями?
Сейчас мы его причешем!
Скользящее среднее, экспоненциальное сглаживание, различные фильтры низких частот, методы Савицкого — Голея и другие математические инструменты позволяют значительно уменьшать измерительный шум.
И действительно, линия на экране начинает выглядеть гораздо приятнее.
Но здесь есть одна проблема.
Красивый график и достоверный график — далеко не всегда одно и то же.
Фильтр не умеет по одному лишь внешнему виду сигнала безошибочно определять, какие изменения скорости являются реальными, а какие вызваны погрешностями измерительной системы.
Если полезный сигнал и паразитные колебания лежат в разных частотных диапазонах, задача решается относительно успешно.
Но если их частотные составляющие перекрываются, приходится идти на компромиссы.
При слабой фильтрации на графике остаются заметные колебания.
При сильной мы рискуем подавить вполне реальные изменения ускорения.
Рассмотрим простой пример.
Предположим, ускорение кратковременно изменилось на протяжении 20 миллисекунд.
Если к такому идеализированному прямоугольному импульсу применить скользящее среднее с окном 100 миллисекунд, его максимальная амплитуда уменьшится до 20% исходной.
Разумеется, это не универсальная величина ошибки, а конкретный пример действия одного фильтра.
Но он хорошо демонстрирует саму проблему.
Кратковременный пик сгладили.
График стал красивее.
А вместе с шумом, возможно, выбросили и часть вполне реального физического процесса.
Кроме уменьшения амплитуды пиков, фильтрация может изменять их форму и временное положение.
Причинные фильтры обычно добавляют задержку.
Другие методы могут уменьшать её или обрабатывать весь записанный сигнал после завершения измерения, но у каждого подхода остаются свои ограничения.
Отдельно стоит учитывать, что некоторые способы вычисления скорости уже фактически усредняют измерения за определённый временной или угловой интервал.
Например, подсчёт импульсов за 100 миллисекунд изначально даёт оценку средней скорости на этом интервале.
Если потом дополнительно фильтровать скорость, затем вычислять ускорение и ещё раз фильтровать полученный результат, можно организовать настоящий салон красоты для графиков.
Только вот к реальности вся эта красота может иметь уже весьма приблизительное отношение. :)
Разумеется, существуют сложные и достаточно эффективные методы цифровой обработки.
Правильно подобранные фильтры вовсе не обязаны вносить большие искажения.
Но мне хотелось решить несколько другую задачу.
А нельзя ли получать достаточно качественные исходные измерения, чтобы потом не приходилось так активно бороться с их последствиями?
А если попробовать иначе?
В какой-то момент стало понятно, что дальнейшее увеличение разрешения энкодера или частоты таймера само по себе принципиально проблему не решит.
Нужно было внимательнее разобраться с тем, какую физическую информацию несут сами события и как именно мы используем её в расчётах.
Пришлось вернуться к временным меткам, повторяемости регистрации событий, выбору интервалов измерения и правильной временной привязке вычисленных величин.
Отдельное внимание уделил вычислению ускорения, поскольку именно оно играет ключевую роль в определении мощности.
Подробности выбранного алгоритма пока оставлю за кадром.
Но результаты экспериментов оказались весьма интересными.
Среди опробованных вариантов выбранный способ дал наиболее устойчивую картину скорости и ускорения ещё до применения дополнительных цифровых фильтров.
И это, пожалуй, оказалось одним из самых приятных результатов всей работы.
Ведь одно дело — получить график с сильными колебаниями и затем всеми доступными способами пытаться сделать его гладким.
И совсем другое — изначально вычислять измеряемые величины таким образом, чтобы паразитные колебания влияли на них значительно меньше.
При этом важно понимать, что любой подобный метод имеет собственное временное разрешение и ограничения.
Даже без отдельного фильтра математическая обработка может обладать определённым усредняющим действием.
Поэтому я не собираюсь утверждать, что удалось изобрести идеальный способ измерения или победить все погрешности.
Для окончательных выводов необходимы контрольные измерения и сравнение с известной динамикой вращения.
Но сам факт, что исходные результаты стали заметно устойчивее без агрессивной последующей фильтрации, считаю весьма обнадёживающим.
Получается, что бороться с шумом можно не только после вычислений, но и на этапе выбора самого способа получения измеряемых величин.
И это гораздо интереснее, чем просто крутить настройки сглаживания до появления красивой кривой.
Теперь попробуем научить этому программу
Собственно, все эти эксперименты постепенно и привели меня к разработке собственной системы телеметрии.
Причём программа должна не только показывать обороты, скорость, мощность и крутящий момент.
Необходимо правильно организовать регистрацию событий, вычисление измеряемых величин, временную синхронизацию, передачу данных, запись заездов и дальнейшую обработку результатов.
Для низкоуровневой части использую микроконтроллер STM32H755, который занимается регистрацией событий и обработкой измерений в реальном времени.
А для компьютерного интерфейса выбрал Avalonia и .NET.
Хочется получить собственный инструмент с настраиваемыми приборами, графиками, шкалами и возможностью дальнейшего развития.
Первые эксперименты с программой уже проведены.
Пока многое работает в тестовом режиме, но постепенно отдельные части начинают складываться в единую систему.
И чем больше я разбираюсь в этой теме, тем интереснее становится.
Первоначально казалось, что главное — изготовить хороший механический стенд, установить датчик оборотов, подключить контроллер и написать программу с графиками.
Но выяснилось, что между реальным вращением ролика и цифрой мощности на экране скрывается довольно большое количество физики, электроники и математики.
Причём каждый этап способен добавить собственную погрешность.
И, пожалуй, главное, что я пока вынес из всей этой истории:
Для измерительной системы диностенда важно не то, сколько импульсов мы смогли получить, а насколько достоверную информацию о вращении сумели из них извлечь.
А ещё я окончательно убедился, что нарисовать красивые лошадиные силы гораздо проще, чем правильно их измерить.
Но мы ведь не за красивыми картинками всё это затевали. :)
Изображение


Вчера, 20:35
Профиль
Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 97 ]  На страницу Пред.  1, 2, 3, 4, 5

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.
Русская поддержка phpBB