ZEvS писал(а):А может всетаки в программе ошибка? Двигатель с 36 градусами на холостом ходу заглохнет от удара в обратку...
не... ехал-то я на ДПКВ и по пути мерил угол, который выдаёт трамблёр.
я сначала тоже думал, что косяк в программе. но угол всё-таки падал до 24 при полной тапке, т.е. вакуумник видимо работал.
а потом и центробежник видимо "отпустило" к концу поездки. в общем не разберёшь - не поймёшь .ZEvS писал(а):А может всетаки в программе ошибка? Двигатель с 36 градусами на холостом ходу заглохнет от удара в обратку...
у меня регулярно догревается при 36-ти, ни хвига, не глохнет, и даже не дергаетсяZEvS писал(а):А может всетаки в программе ошибка? Двигатель с 36 градусами на холостом ходу заглохнет от удара в обратку...
Zillo, ты не обижайся, пожалуйста, но графики (логи) твои на предыдущей странице - это погода на марсе... Не выдавай желаемое за действительное. Решил снять характеристику трамблера - так подойди к этому граммотно и реализуй это граммотно, а не "P.S. на резкие всплески внимания не обращать, так как это означает лишь, что для данных условий УОЗ не был достаточно точно получен" и "У меня, кстати в схеме как-раз используется не каптуре-модуль, а просто прерывание. Почему? ну, знаний тогда было маловато, потому использовал то, что мне было более понятно. естессно использование каптуре-модулей ИМХО более правильно, но пока переделывать наверное не буду.
считаю, что при скорости кристалла 8Мгц и частоте таймера 125 кГц (у меня), таймер вполне можно анализировать и в обычном прерывании"...Zillo писал(а):я и сам знаю про погоду на марсе. перед этим я честно спросил совета как снять логи. в ответ было только "нафига да зачем". я сделал пробное снятие логов, чтобы опять таки послушать конструктивные советы.
Совет "делай как надо" я и сам знаю. а как надо?
Совет, тем более конструктивный, тем более "как надо" был дан... Слушающий, но слышащий - да услышит!Zillo писал(а):хотя, немного поясню:
"УОЗ не был достаточно получен" - в процессе измерения УОЗ используется фильтрация по среднеарифметическому от предыдущего измеренного значения для этой точки и текущего. в результате если изначально в таблице было значение 0, а на самом деле в этой точке нужно то чтобы оно достигло значения 50. этого значения оно будет достигать в течении нескольких итераций
(0+50) / 2 = 25
(25+50)/2 = 37
(37+50)/2 = 43
(43+50)/2=46
(46+50)/2=48
(48+50)/2=49
т.е. фактически из самого крайнего положения точка заёмёт своё нужное положение итераций через 6-8. в то же время случайные кратковременные отклонения будут нивелироваться.
ну вот такой метод фильтрации мне больше понравился особенно в части требования к объёму памяти.
потому и фраза "УОЗ не был достаточно точно измерен". если на данную точку было всего три итерации то в .той точке будет всплеск до 43, а не до 50 как в окружающих. вот оттуда и всплески.
Если уж после фильтрации такие "Гималаи", то каковы исходные данные до фильтра... Что говорит о чем?
Zillo писал(а):"Таймер можно анализировать и в обычном прерывании" - а почему нет? возникает прерывание по изменению уровня. первой командой в прерывании будет запоминание текущего показания таймера и его обнуления для измерения следующего интервала. всё. дальше оперируем тем значением, что запомнили в начале прерывания.
частота кристалла 8 Мгц, что как обещает производитель AVR примерно равно 8 млн элементарных операций частота таймера = 125 кГц. т.е. на один тик таймера 64 тика кристалла. как раз хватит на то, чтобы запомнить то что в данный момент натикало у таймера (да за это время можно пару целочисленных умножений сделать). Да даже если и не хватит то будет сбвижка на 1 дополнительный тик таймера. но эта сдвижка будет статична. каждый раз одна и та же.
Ошибаешься. Частота таймера и сигнал с датчика не синхронизированны, то есть сигнал с датчика может прийти в любой из 64 тиков кристалла, приходящихся на тик таймера.
Далее, латентность прерывания... Обнуление (!!!) таймера...
Чем и хорош Capture-модуль: таймер запускаешь в режиме Free-Run без прерываний по переполнению, по приходу сигнала с датчика модуль запоминает мгновенное (!!!) значение, "слепок" таймера, причем аппаратно с максимальной точностью! А уже в прерывании от него из текущего слепка вычитаешь предыдущий слепок и получаешь точный (с разрешающей способностью частоты таймера) измеренный временной интервал!!! Без обнуления таймера и всяких латентностей.
А для повышения точности частоту таймера следует выбирать как можно большей, в идеале - частота камушка.
Zillo писал(а):Для повышения точности, прерывание от ДПКВ возникает два раза (при прохождении зуба и прохождении впадины), т.е. теоретически через каждые 3 градуса.
Еще раз напомню, что при работе по обоим фронтам с датчика разрешающая способность НЕ 3 градуса! Очень хотелось бы этого, но в действительности это не так!.:LeoN:. писал(а):Без обнуления таймера и всяких латентностей
Как без обнуления? Обнуление там надо делать в прерывании сразу после записи текущего (моментального) значения в регистр ICR. Для счета следующего интервала... Поэтому я не вижу преимуществ перед простым прерыванием (как сейчас у Вас реализовано), ведь обработчики одинаковые.
.:LeoN:. писал(а):А для повышения точности частоту таймера следует выбирать как можно большей, в идеале - частота камушка.
+1. Только стоит учесть медленное вращение и обработку события по переполнению, например УОЗ в 0 по фронту нулевого зуба - без счетчиков вообще..:LeoN:. писал(а):Еще раз напомню, что при работе по обоим фронтам с датчика разрешающая способность НЕ 3 градуса! Очень хотелось бы этого, но в действительности это не так!
Это ничего! ВременнАя интерполяция себя оправдывает! .:LeoN:. писал(а):Ошибаешься. Частота таймера и сигнал с датчика не синхронизированны, то есть сигнал с датчика может прийти в любой из 64 тиков кристалла, приходящихся на тик таймера.
и... в крайнем слчае будет ошибка на 1 тик таймера (это если прерывание возникнет на 63-м тике кристалла). тогда да. каптуре модуль покажет одно значение таймера, а обычное прерывание поймает 1 больше.
.:LeoN:. писал(а):Если уж после фильтрации такие "Гималаи", то каковы исходные данные до фильтра... Что говорит о чем?
о малом времени "накатки" логов наверное (о чём я сразу честно предупредил). Ну и если уж там не ровные 3 градуса между фронтами, то и отсюда тоже.
Никто не спорит. Capture-модуль вещь хорошая в плане разгрузки ресурсов процессора, освобождения важных ножек и повышения точности. но сваливать на прерывание по фронту ВСЕХ собак - это неправильно. Если он и даёт погрешность, то не настолько огромную, чтобы её заметить.Zillo писал(а):ZEvS писал(а):Это все по стробоскопу?
Нет. это я мерил своей схемой.
может конечно у меня такой трамблёр раздолбаный... ПЕРВАЯ (которая слабая) пружинка должна иметь люфт? т.е. свободный ход? или она должна быть с небольшим преднатягом?
А относительно чего велись замеры? То есть что принимала система за начало отчета?
Пружинка должна иметь люфт. Вступать в действие она должна на 26 градусах (по колену) отклонения бегунка. (см. график на моем сайте).
Именно вступив в действие она уменьшает скорость наростания угла от оборотов, и именно от ее люфта зависит точка излома графика.Zillo писал(а):но у меня люфт у обоих пружинок.
У первой пружинки люфта быть не должно. Ушки должны быть так настроены, что при крайнем положении (грузики сведены), ее витки полностью стянуты, но и люфта нет. Но стоит чуть-чуть повернуть бегунок и пружинка уже начинает воспрепятствовать этому повороту.
И при установке трамблера в 0, на ХХ получается 7 гр...Zillo писал(а):по поводу точки отсчёта. насколько мне известно, при работе от зубчатого шкива, моментом ВМТ (т.е. 0 градусов) считается прохождение 20-го и 50-го зуба мимо ДПКВ (зубы считаем с 1).
А зачем ковыряться с трамблером, если шкивак зубчатый установлен? ZEvS писал(а):А зачем ковыряться с трамблером, если шкивак зубчатый установлен?
э-э-э... ну я же по-мойму говорил, что хочу снять характеристики своего трамблёра. Для дома для семьи так сказать.ZEvS писал(а):У первой пружинки люфта быть не должно. Ушки должны быть так настроены, что при крайнем положении (грузики сведены), ее витки полностью стянуты, но и люфта нет. Но стоит чуть-чуть повернуть бегунок и пружинка уже начинает воспрепятствовать этому повороту.
И при установке трамблера в 0, на ХХ получается 7 гр...
Добавив уточню!
ПЕрвая пружинка должна начинать срабатывать только при повышении холостых оборотов.
На нормированных холостых она ещё вытягиваться не должна!
Это и есть (условно) исходная жёсткость 1-й пружинки...