FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Суббота, 03.12.2016, 05:25
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 3«123»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Comparator последовательных данных
Comparator последовательных данных
Брат Дата: Среда, 25.05.2016, 22:12 | Сообщение # 16
Рядовой
Группа: Проверенные
Сообщений: 24
Награды: 0
Репутация: 0
Статус: Offline
Цитата Rovki ()
Для одного экстремума пойдет
Да одинэкстремум и нужен, но с оговоркой, что отметка должна быть немного дальше
апогея, ведь датчик сильно шумит, да и возможны небольшие паразитные скачки давления,
что может приводить к ложным срабатываниям!Но главный вопрос,что происходит с соединением по переменной? Сейчас загнал схему и получил для
наглядности  результат в виде графика Excel.  Как видим на выходе (красным) и входе (синим)данные отличаются, причем существенно! Хорошо, допустим причина в датчике.
Прикрепления: 6141096.jpg(67Kb)
 
Rovki Дата: Среда, 25.05.2016, 22:19 | Сообщение # 17
Генерал-лейтенант
Группа: Модераторы
Сообщений: 786
Награды: 14
Репутация: 11
Статус: Offline
Цитата Брат ()
ведь датчик сильно шумит,
Нужно сначала отфильтровать сигнал от помех ,например фильтром по методу скользящего окна ..


Электронщик до мозга костей и не только
 
Брат Дата: Среда, 25.05.2016, 22:47 | Сообщение # 18
Рядовой
Группа: Проверенные
Сообщений: 24
Награды: 0
Репутация: 0
Статус: Offline
А я пришел вот к этой схеме, почему в ней все работает идеально! Изменяя размер массива могу
смещать данные на любое количество циклов, то есть не только находить апогей,
но и задавать любое значение чувствительности!  Да, но данные с того же датчика, а результат
один в один! Получается, что дело не в датчике и соединение через переменную не
равнозначно перемычке! На мой взгляд есть повод задуматься!

Добавлено (25.05.2016, 22:47)
---------------------------------------------
Цитата Rovki ()
Нужно сначала отфильтровать сигнал от помех ,например фильтром по методу скользящего окна ..
Безусловно! Я использую датчик в режиме ULTRA_LOW_POWER, то есть без внутреннего усреднения, затем
фильтрую при помощи аналогового фильтра, который есть  на нашем форуме (пользовательский блок)!  Интересно, если использовать режим внутреннего усреднения датчика, то падает количество циклов опроса, а если использовать внешний фильтр, то при одном результате сглаживания количество циклов не уменьшается!
Прикрепления: 6358846.jpg(30Kb)


Сообщение отредактировал Брат - Среда, 25.05.2016, 22:50
 
Брат Дата: Четверг, 26.05.2016, 11:59 | Сообщение # 19
Рядовой
Группа: Проверенные
Сообщений: 24
Награды: 0
Репутация: 0
Статус: Offline
Сегодня еще раз проверил нюансы в работе переменной, но числа загонял с генератора, дабы исключить непонятки! Если через переменную прогонять одинаковые числа или Byte, то все нормально. А если случайные числа, то полная неадекватность!  То есть, использовать переменную в качестве межплатных соединений нужно очень осторожно! На мой взгляд, необходимо и соединения между платами выполнять по принципу именных !
Прикрепления: 9686878.jpg(23Kb) · 8537126.csv(25Kb) · 0596193.csv(30Kb)


Сообщение отредактировал Брат - Четверг, 26.05.2016, 12:01
 
rw6cm Дата: Четверг, 26.05.2016, 12:50 | Сообщение # 20
Генерал-майор
Группа: Проверенные
Сообщений: 473
Награды: 43
Репутация: 31
Статус: Offline
Цитата Брат ()
опрос датчика в каждом цикле,
Так и делайте замеры в одном цикле для всех.

Прикрепления: 6630938.png(5Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
Брат Дата: Четверг, 26.05.2016, 18:55 | Сообщение # 21
Рядовой
Группа: Проверенные
Сообщений: 24
Награды: 0
Репутация: 0
Статус: Offline
Цитата rw6cm ()
Так и делайте замеры в одном цикле для всех.
Спасибо, себя перепроверю!


Сообщение отредактировал Брат - Четверг, 26.05.2016, 18:56
 
Boroda Дата: Пятница, 27.05.2016, 10:39 | Сообщение # 22
Майор
Группа: Проверенные
Сообщений: 149
Награды: 7
Репутация: 8
Статус: Offline
Попробуйте вот такую коробочку (в железе не тестировал, FLprog 1.11.1)

Прикрепления: Test_ExtremWind.rar(13Kb) · 3703651.jpg(21Kb)


Сообщение отредактировал Boroda - Пятница, 27.05.2016, 11:50
 
Брат Дата: Пятница, 27.05.2016, 22:06 | Сообщение # 23
Рядовой
Группа: Проверенные
Сообщений: 24
Награды: 0
Репутация: 0
Статус: Offline
Цитата Boroda ()
Попробуйте вот такую коробочку (в железе не тестировал, FLprog 1.11.1)
Спасибо,описание блока как всегда, меня смущает период 10 мс, а мне надо опираться на
циклы!
 
Boroda Дата: Пятница, 27.05.2016, 23:31 | Сообщение # 24
Майор
Группа: Проверенные
Сообщений: 149
Награды: 7
Репутация: 8
Статус: Offline
С какой же скоростью у Вас данные идут? Если датчик не сильно шумит, то должно хватить 10 отфильтрованных измерений за одну секунду, чтоб принять верное решение об изменении высоты.
Блок ExtremWindowT заполняет буфер по внешнему сигналу 0->1 на входе EN. Можно привязать к циклу измерений.

П.С.
Цитата
период 10 мс
Он же в параметрах блока настраивается переменной Period, хоть 10 секунд сделайте.

Добавлено (27.05.2016, 23:31)
---------------------------------------------
Эх только сейчас графики с датчика увидел, тут медианный фильтр нужен отсчетов на 10-15. Больно уж сильно значения прыгают. А медианный - потому как он почти не вносит задержку, по сравнению с оконным и цифровым RC.

Прикрепления: 1846818.rar(14Kb)


Сообщение отредактировал Boroda - Пятница, 27.05.2016, 23:12
 
Boroda Дата: Суббота, 28.05.2016, 01:11 | Сообщение # 25
Майор
Группа: Проверенные
Сообщений: 149
Награды: 7
Репутация: 8
Статус: Offline
Провел тест различных цифровых фильтров (период выборок 10мс):
- медианный на 10 точек
- RC-фильтр с постоянной времени 80мс
- оконный на 8 точек (скользящее среднее)
В первом случае аналоговый вход Ардуины болтался в воздухе.
Во втором - я крутил переменный резистор, а помехи наводили фототранзистор и энергосберегающая лампочка.
В третьем добавил тест блока ExtremWindowT

П.С. медианный нужно удлинять...
Прикрепления: Test_all_filtr.rar(62Kb) · Test_all_filtr_.rar(44Kb) · Test_Exrtem_exe.rar(77Kb)


Сообщение отредактировал Boroda - Воскресенье, 29.05.2016, 22:41
 
Брат Дата: Воскресенье, 29.05.2016, 22:10 | Сообщение # 26
Рядовой
Группа: Проверенные
Сообщений: 24
Награды: 0
Репутация: 0
Статус: Offline
Цитата Boroda ()
Провел тест различных цифровых фильтров (период выборок 10мс):
Большое спасибо за блоки фильтров! Если можно, коротко об особенностях медийного фильтра, ничего не нашел. RC,  понятно, а оконный это – скользящее среднее? К сожалению, с датчиком ВМР180 на Arduino Nano получается опросов не более 26/сек, вероятно, библиотека тормозит, а условные шумы на уровне 2м, надо 20см, а сдвиг не
приветствуется,  условия жесть!Вот я взялся за некоммерческий проект ракетного высотомера, причем для самостоятельного изготовления моделистом-слесарем! Успехи есть, высоту измеряет, парашют ( даже два выбрасывает), уже есть слесари которые смогли повторить и говорят спасибо! :)
Теперь улучшаю работу своего изделия, сам  радиоэлектроник, но в
программировании ни бум-буб, а благодаря FLP разработал действующее устройство! Спасибо разработчикам, к сожалению, работа на  FLPнапоминает игру «Угадай мелодию», но может оно и правильно! smile


Сообщение отредактировал Брат - Воскресенье, 29.05.2016, 22:12
 
Boroda Дата: Воскресенье, 29.05.2016, 22:30 | Сообщение # 27
Майор
Группа: Проверенные
Сообщений: 149
Награды: 7
Репутация: 8
Статус: Offline
Цитата Брат ()
коротко об особенностях медиАнного
Есть ряд значений (11,10,12,100,500,30,10,9,10,12,11), которые запомнил фильтр.
Фильтр раскладывает их по возрастанию (9,10,10,10,11,11,12,12,30,100,500) и на выход выдает средний член этого ряда (11).
Со сдвигом я погорячился - все фильтры дают сдвиг по фазе и он зависит от размера окна (сколько предыдущих значений помнит фильтр).

Цитата Брат ()
оконный это – скользящее среднее?
Да, именно он.
 
Boroda Дата: Воскресенье, 29.05.2016, 22:41 | Сообщение # 28
Майор
Группа: Проверенные
Сообщений: 149
Награды: 7
Репутация: 8
Статус: Offline
Сделал еще несколько фильтров:
Группа Filtr - период взятия выборок задается в милисекундах.
Группа FiltrT - выборка берется по переднему фронту на входе EN.
Группа Move - блок передает переменную со входа на выход, если EN=true.
В архиве график работы 4х фильтров, блоки пользователя и проект.
Прикрепления: Test_4_filtr.rar(131Kb)


Сообщение отредактировал Boroda - Воскресенье, 29.05.2016, 22:54
 
Олег Дата: Понедельник, 30.05.2016, 00:02 | Сообщение # 29
Гуру
Группа: Проверенные
Сообщений: 717
Награды: 20
Репутация: 15
Статус: Offline
Цитата Брат ()
Спасибо разработчикам, к сожалению, работа на  FLPнапоминает игру «Угадай мелодию»,
Для основной массы задач FLProg работает как часы, измерения в каждом цикле требует знания нюансов, которые в обыденной жизни не интересны.
 
rw6cm Дата: Понедельник, 30.05.2016, 08:20 | Сообщение # 30
Генерал-майор
Группа: Проверенные
Сообщений: 473
Награды: 43
Репутация: 31
Статус: Offline
Цитата Брат ()
вероятно, библиотека тормозит, а условные шумы на уровне 2м, надо 20см,
Быстрей всего для этого нужно более лучший датчик.



Если учесть что при идеальном питании BMP180, завод гарантирует шумы 25см,
и это явно выбранные экземпляры, надеяться на 20см не стоит.

п/с К тому же не известно какой параметр (oversampling_setting (0, 1, 2, 3) in the C code.) использует Автор в этом блоке.
      если стандарт, то это 40см.
Прикрепления: 4242921.png(33Kb) · 6362886.png(35Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)

Сообщение отредактировал rw6cm - Понедельник, 30.05.2016, 09:35
 
Форум » Основной » Спросить у знатоков » Comparator последовательных данных
Страница 2 из 3«123»
Поиск:

FLProg © 2016
Яндекс.Метрика