Тестирование ДВС

Захват, обработка и генерирование сигнала

Тестирование ДВС

Postby Borisych on 16 Oct 2013, 06:23

Добрый день!
Данная тема уже обсуждалась на прошлом форуме, но сейчас ее приходится поднимать заново.
Суть идеи - подключить датчики к реальному дизелю и измерять рабочие параметры. Конкретно речь идет о замере угла опережения впрыска (УОВ) в зависимости от оборотов двигателя. Что было сделано за прошедший период:
- проверено несколько вариантов датчиков (микрофон, пьезо-, ПД-6, оптопара), сняты формы сигнала.
- сделан и переделан имитатор сигналов
- проверено несколько вариантов схем

Основной вопрос - прыгают показания по частоте и фазе. Если показания по частоте вращения достаточно точные, то фаза прыгает в недопустимых пределах - до 5 град. Иногда уходит в "минус". Хотелось бы иметь ошибку определения 1-2 град. Какие будут идеи?
Attachments
Input_peak detector_15.10.13.vi
Схема LV2009
(875.24 KiB) Downloaded 148 times
Borisych
junior
junior
 
Posts: 56
Joined: 13 Nov 2012, 19:31
LabVIEW Version: 10
Karma: 0

Re: Тестирование ДВС

Postby Borjomy_1 on 16 Oct 2013, 08:16

Для максимально точного измерения фазы показания "Оборот/мин 1" и "Оборот/мин 2" должны абсолютно точно совпадать. Иначе производится измерение фаз между разными гармониками, что совершенно естественно будет приводить к погрешностям. Вычисляйте номер гармоники по одному сигналу, и уже по этой гармонике считайте фазу второго сигнала, чтобы потом считать разницу фаз. И надо не забывать о том, что шум в огибающей сигналов, также будет давать погрешность вычисления фазы и весьма значительную.
Borjomy_1
expert
expert
 
Posts: 1756
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Тестирование ДВС

Postby Borisych on 16 Oct 2013, 09:12

Исходя из конструкции ДВС, частота сигналов коленвала и частота сигналов впрыска одинаковые. Разница состоит во времени их фиксации. Этот момент времени приведенный к фазе и нужно определить. Т.е. первая гармоника у сигналов одинаковая.
Более того, обратите внимание, что детекторы частоты и фазы работают в пилообразными сигналами на входе. Если на вход подавать прямоугольные импульсы, сформированные компаратором, то детекторы начинают ловить 2, 3, 4 гармоники сигналов. Я это обозвал "нулевые частоты" по подобию таких частот в АЦП.
Касательно шума вы абсолютно правы. Фактор шума учтен в имитаторе сигнала, как добавочный шум генератора.
Borisych
junior
junior
 
Posts: 56
Joined: 13 Nov 2012, 19:31
LabVIEW Version: 10
Karma: 0

Re: Тестирование ДВС

Postby Borjomy_1 on 16 Oct 2013, 09:39

Т.е. первая гармоника у сигналов одинаковая.

* ваш пример у меня не запускается - какие-то ошибки в ExpressVI-ях
Это в теории. На практике из-за шума могут быть сдвижки. И вот тут начинают набегать погрешности. Если вы набираете массив данных некратный периоду вращения двигателя, то точно вычислить фазу не получится - из-за особенностей метода вычисления FFT. Имеет смысл выделять целое число периодов из оцифрованного массива и считать фазы по такому фрагменту. Т.е вы находите начало и длину по одному сигналу и вырезаете одинаковые фрагменты этих сигналов.
Borjomy_1
expert
expert
 
Posts: 1756
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Тестирование ДВС

Postby Borisych on 16 Oct 2013, 10:16

Я делал подобную схему.
Оба сигналы пропускались через Trigger and gate. (Это была попытка борьбы с моментом, когда первым в массив записывается второй канал, и фаза становится 360 - фаза.) В этом случае есть провалы в индикации данных.

В приведенной схеме исследовались четыре варианта схем измерения.
Самое точное измерение - вычисление частоты из периода. Серьезный минус - при низких значениях частоты ( менее 1000-1200 об/мин) система вылетает в ошибку. Видимо период большой и происходит деление на ноль.

На счет "размера массива некратному периоду вращения" можно подробнее? Кратность в чем? В размере самого массира или в количестве импульсов? Оно должно быть четным или не четным?
Borisych
junior
junior
 
Posts: 56
Joined: 13 Nov 2012, 19:31
LabVIEW Version: 10
Karma: 0

Re: Тестирование ДВС

Postby Borjomy_1 on 16 Oct 2013, 13:51

Серьезный минус - при низких значениях частоты ( менее 1000-1200 об/мин) система вылетает в ошибку. Видимо период большой и происходит деление на ноль.

похоже, просто за один замер не набегает периода, потому и ошибка.
В анализируемый массив должно укладываться ЦЕЛОЕ число периодов. Какое оно - четное или нет не имеет значения. Например, если период укладывается в 258 точек, то следует вырезать 516, 774 итд. Если три периода укладываются в 1000 точек, то надо брать 1000, 2000 и т.д
Borjomy_1
expert
expert
 
Posts: 1756
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Тестирование ДВС

Postby Borisych on 16 Oct 2013, 14:06

А тогда как определить размер массива? длительность периода меняется. получается, что на первом этапе я должен замерить длительность периода, и рассчитать размер массива. Потом исходя из размера массива записать сам массив и проанализировать его функцией. так?
а может есть готовый вариант - записать скажем 10 пиков?
Borisych
junior
junior
 
Posts: 56
Joined: 13 Nov 2012, 19:31
LabVIEW Version: 10
Karma: 0

Re: Тестирование ДВС

Postby Borjomy_1 on 16 Oct 2013, 14:22

Примерно так. Делаете замер, вычисляете из него длину периода (а это величина, обратная "detected frequency"). Из этих-же замеров по первому и по второму датчику вырезаете соответствующие фрагменты и по этим двум фрагментам считаете фазу. Если частота достаточно высокая, то выделяется несколько периодов (тогда точность вычислений возрастает). На точность вычисления фазы влияет не длина периода, а длина фрагмента. Т.е для получения равномерного шума следует производить вычисления по примерно одинаковым по длине фрагментам.
Borjomy_1
expert
expert
 
Posts: 1756
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 309
VIP

Re: Тестирование ДВС

Postby Borisych on 18 Oct 2013, 14:36

выявилась интересная фишка.
имеется Peak Detector VI. У Peak Detector VI имеется выход # found на котором отображается кол-во найденных пиков.
Если на вход подавать синусоиду или нечто подобное, то кол-во пиков отображается.
Если подавать прямоугольные импульсы, то # found не работает! отображается НОЛЬ.
С этим можно как-то бороться? И почему так происходит?
Borisych
junior
junior
 
Posts: 56
Joined: 13 Nov 2012, 19:31
LabVIEW Version: 10
Karma: 0

Re: Тестирование ДВС

Postby Andrew Lunev on 18 Oct 2013, 14:50

По моему все логично. VI детектирует пики (локальные экстремумы функции), а у прямоугольного сигнала не пики, а полки.
У прямоугольного сигнала обычно считают фронты, это намного проще и точней. Если хотите использовать именно Peak Detector VI, то предварительно пропустите прямоугольный сигнал через фильтр, он сделает из него синусоиду. Но зачем использовать вариант намного менее точный и ресурсоемкий, если есть более простые решения?
User avatar
Andrew Lunev
leader
leader
 
Posts: 849
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

Re: Тестирование ДВС

Postby Borisych on 31 Oct 2013, 10:27

Добрый день!
2 Andrew Lunev
Как поймать фронт импульса? точнее какой функцией?

Подсчитать кол-во импульсов в массиве может и Peak Detector VI, только точности никакой.

Сейчас применяю Extract Single Tone Information VI.
Точнее берутся два синхронных сигнала со сдвигом по времени. Сдвиг времени ( сдвиг фазы) вычисляется как разность показаний фазы сигнала в каждом канале.
Точность высокая. сразу выявилась ошибка:
- на точность определения сдвига влияет длительность импульсов. Передние фронта синхронизированы, а спады разбегаются. Видимо Extract Single Tone Information VI за точку отсчета принимает середину импульса, а не фронт.
Borisych
junior
junior
 
Posts: 56
Joined: 13 Nov 2012, 19:31
LabVIEW Version: 10
Karma: 0

Re: Тестирование ДВС

Postby Andrew Lunev on 31 Oct 2013, 21:36

Borisych wrote:Как поймать фронт импульса? точнее какой функцией?

Если сигнал TTL, то лучше всего для подсчета импульсов использовать аппаратный счетчик, они есть почти в каждой универсальной плате сбора данных от NI. Счетчиком можно посчитать и частоту и период и кол-во импульсов за единицу времени (скорость).

Если сигнал приходит с АЦП, то так же вариантов очень много, все зависит от метода сбора сигнала, его уровня и зашумленности. Один из простых вариантов для примера ниже. Подсчитывает передние фронты входного сигнала формата TTL.
Attachments
FrontCounter.png
User avatar
Andrew Lunev
leader
leader
 
Posts: 849
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

Re: Тестирование ДВС

Postby Borisych on 01 Nov 2013, 07:07

До платы я еще пока не дорос. Дорогое это удовольствие для гаражных Х-перементов. Использую звуковой вход. Два канала пока достаточно.
Использовать аппаратные счетчики можно, но тогда возникают сложности с предварительной фильтрацией сигнала.
Я использую LV именно из-за возможности менять входные фильтры в широких пределах.
Borisych
junior
junior
 
Posts: 56
Joined: 13 Nov 2012, 19:31
LabVIEW Version: 10
Karma: 0

Re: Тестирование ДВС

Postby Andrew Lunev on 01 Nov 2013, 11:14

Звуковой вход не пропускает постоянную составляющую сигнала, соответственно после оцифровки получите не прямоугольный сигнал, а импульсы фронтов (производные). Отличить их от помехи достаточно сложно, тут надо уже смотреть уровень и возможно еще какие-то параметры сигнала. Покажите запись сигнала с датчика, тогда уже можно подумать о методах обработки и выделении фронтов.
User avatar
Andrew Lunev
leader
leader
 
Posts: 849
Joined: 11 Dec 2010, 12:31
Location: Москва
Medals: 2
Activity (1) Professionalism (1)
LabVIEW Version: 2016
Karma: 244
hardware I/O VIP teachers

Re: Тестирование ДВС

Postby Borisych on 01 Nov 2013, 13:56

В системе используются два датчика и два тракта передачи:
- оптопра. устанавливается на распредвал.
- пьезодатчик ПД-6. Устанавливается на трубку форсунки.

Оптопара работает очень хорошо. фронты идеальные. Емкости на входе звуковой карты практически не влияют
Пьезодатчик. Картинка внизу, самая верхняя белого цвета. Это картинка снята на реальном двигателе.
Структура и спектра сигнала с ПД-6 весьма сложные. Я его имитировал как несущую 4 кГц, модулированную треугольными импульсы большой скважности.
Оба тракта имеют одинаковые параметры, чтобы фазовые хар-ки были одинаковые.
Attachments
PrnScr_1.pdf
(166.08 KiB) Downloaded 131 times
Borisych
junior
junior
 
Posts: 56
Joined: 13 Nov 2012, 19:31
LabVIEW Version: 10
Karma: 0

Next

Return to Обработка сигнала

Who is online

Users browsing this forum: No registered users and 5 guests

cron