Помощь с фильтрацией сигнала и выводом в graph
-
- beginner
- Сообщения: 11
- Зарегистрирован: 29 окт 2018, 12:23
- Версия LabVIEW: 2011
- Контактная информация:
Помощь с фильтрацией сигнала и выводом в graph
Добрый день.
В Measurement & Automation создана симуляция прибора ni-6024e
В лабвью добавляем сигнал daq assistant (voltage, 1 sample (on demand)).
Вопрос № 1. Как правильно отразить его в Waveform graph? (как добавить метку времени)
Вопрос № 2. Сигнал имеет форму синусойды. К примеру: мы пускаем двигатель. В Waveform видим, что броски тока идут как отрицательные, так и положительные. Как нам отфильтровать сигнал, чтоб значение было только положительным и без волн (к примеру сигнал отфильтрован по максимальным амплитудам волн)
Спасибо.
В Measurement & Automation создана симуляция прибора ni-6024e
В лабвью добавляем сигнал daq assistant (voltage, 1 sample (on demand)).
Вопрос № 1. Как правильно отразить его в Waveform graph? (как добавить метку времени)
Вопрос № 2. Сигнал имеет форму синусойды. К примеру: мы пускаем двигатель. В Waveform видим, что броски тока идут как отрицательные, так и положительные. Как нам отфильтровать сигнал, чтоб значение было только положительным и без волн (к примеру сигнал отфильтрован по максимальным амплитудам волн)
Спасибо.
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
1) учитесь работать без daq assistant, жизнь станет намного проще.
2) отобразить 1 точку на графике невозможно. Если хочется именно по такой сnранной схеме, исполmтзуйте chart.
3) опять же, как из одной точки вы получаете синус?
если сигнал накоплен, то используйте Amplitude and Levels VI из палитры Waveform Measurements VIs
Ну и в целом по той палитре прогуляйтесь. может более интересную функцию найдёте.
2) отобразить 1 точку на графике невозможно. Если хочется именно по такой сnранной схеме, исполmтзуйте chart.
3) опять же, как из одной точки вы получаете синус?
если сигнал накоплен, то используйте Amplitude and Levels VI из палитры Waveform Measurements VIs
Ну и в целом по той палитре прогуляйтесь. может более интересную функцию найдёте.
-
- beginner
- Сообщения: 11
- Зарегистрирован: 29 окт 2018, 12:23
- Версия LabVIEW: 2011
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
2 - проблема как раз с накоплением. Так понимаю на вход graph надо подавать массив. Как его создать?
3 - исходя из вышеуказанного массива делать преобразования.
Amplitude and Levels я так понял выдает число, а не сам график. (к примеру в сети напряжение скачет 220 и -220, а чтоб график показывал только 220
на XY Graph удалось отрисовать график.
К примеру как на рисунке, входной сигнал мы получаем как белой линией, а на графике хотим видеть красным
запрещено грузить фото на сторонние ресурсы
3 - исходя из вышеуказанного массива делать преобразования.
Amplitude and Levels я так понял выдает число, а не сам график. (к примеру в сети напряжение скачет 220 и -220, а чтоб график показывал только 220
на XY Graph удалось отрисовать график.
К примеру как на рисунке, входной сигнал мы получаем как белой линией, а на графике хотим видеть красным
запрещено грузить фото на сторонние ресурсы
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
1) работать с оборудованием в таком режиме - циничное извращённое издевательство.
На каждом цикле вы создаёте DAQ-задачу, берёте точку и удаляете задачу.
Первый и третий шаги жрут ресурсов в несколько раз больше, чем второй. Если уж никак без ассистентов, запрашивайте сразу массив данных.
2) про огибающую можно порыскать не форуме, например, тут обсуждали
На каждом цикле вы создаёте DAQ-задачу, берёте точку и удаляете задачу.
Первый и третий шаги жрут ресурсов в несколько раз больше, чем второй. Если уж никак без ассистентов, запрашивайте сразу массив данных.
2) про огибающую можно порыскать не форуме, например, тут обсуждали
-
- beginner
- Сообщения: 11
- Зарегистрирован: 29 окт 2018, 12:23
- Версия LabVIEW: 2011
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
Ну как инженер на лекции niglobal показывал, так и пытаюсь сделать. Пока плохо разбираюсь.
Вы можете подсказать, как мне правильно при получении единичного сигнала, добавить к нему метку времени, сохранить в массив и затем по истечении какого-то времени вывести график в graph?
Вы можете подсказать, как мне правильно при получении единичного сигнала, добавить к нему метку времени, сохранить в массив и затем по истечении какого-то времени вывести график в graph?
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
У меня есть ощущение, что опытные ползователи не понимают, что такое динамический сигнал и не умеют им пользоваться. Эту мысль даже на форуме NI встречал
Так что НЕ подскажу.
Ещё раз. В настройках ассистента берите не одну точку, а массив. И его отображайте на графике.
А ещё лучше посмотрите стандартные примеры, там есть и про то, как с DAQ работать. Точное название сказать не могу, на этой машине DAQ не стоит.
У вас вообще этот период фиксирован, или меняется? Если первое, то надо сразу запрашивать известное кодичество точек. Если второе, то придётся поколдовать. Но в любом случае, если нужен массив, глупо собирать его по одной точке.
Так что НЕ подскажу.
Ещё раз. В настройках ассистента берите не одну точку, а массив. И его отображайте на графике.
А ещё лучше посмотрите стандартные примеры, там есть и про то, как с DAQ работать. Точное название сказать не могу, на этой машине DAQ не стоит.
У вас вообще этот период фиксирован, или меняется? Если первое, то надо сразу запрашивать известное кодичество точек. Если второе, то придётся поколдовать. Но в любом случае, если нужен массив, глупо собирать его по одной точке.
-
- beginner
- Сообщения: 11
- Зарегистрирован: 29 окт 2018, 12:23
- Версия LabVIEW: 2011
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
Задача в следующем, может поможет в общем понимании.
Есть двигатель. Трансформатор тока включен в схему питания двигателя.
С него мы получаем значение силы тока (синусойда от -5В до +5В).
Необходимо видеть мгновенный график тока и исторический.
как одновременно их получить? Считываем сигнал (on demand). С мгновенным графиком проблем нет, как нам накопить данные для исторического?
Пробовал. Считывал период, graph строится, но возникает проблема с chart.
Хотелось бы, чтобы я нажал кнопку, пошло отображение мгновенного графика (chart) в виде синусойды. Мы увидели пусковые токи.
По истечении 3х секунд двигатель останавливается, мгновенный график тоже. у нас накапливается массив данных с метками времени. мы его обрабатываем по своему усмотрению и выводим в graph.
Есть двигатель. Трансформатор тока включен в схему питания двигателя.
С него мы получаем значение силы тока (синусойда от -5В до +5В).
Необходимо видеть мгновенный график тока и исторический.
как одновременно их получить? Считываем сигнал (on demand). С мгновенным графиком проблем нет, как нам накопить данные для исторического?
Пробовал. Считывал период, graph строится, но возникает проблема с chart.
Хотелось бы, чтобы я нажал кнопку, пошло отображение мгновенного графика (chart) в виде синусойды. Мы увидели пусковые токи.
По истечении 3х секунд двигатель останавливается, мгновенный график тоже. у нас накапливается массив данных с метками времени. мы его обрабатываем по своему усмотрению и выводим в graph.
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
В вашем варианте (опрос по запросу) вы кучу данных потерять можете, если там пик проскочит между запросами.
За 3 секунды существенного ничего не произойдёт, так что можно смело набирать график, а потом отображать.
Если прям хочется на лету обновлять, то при мерно так Только берите с DAQ не одну точку, а кусок в 100-200 мс. Визуально разницы никто не заметит, а машине гораздо проще будет.
повторяю, DAQ тут не стоит, поэтому картинками приходится
За 3 секунды существенного ничего не произойдёт, так что можно смело набирать график, а потом отображать.
Если прям хочется на лету обновлять, то при мерно так Только берите с DAQ не одну точку, а кусок в 100-200 мс. Визуально разницы никто не заметит, а машине гораздо проще будет.
повторяю, DAQ тут не стоит, поэтому картинками приходится
-
- beginner
- Сообщения: 11
- Зарегистрирован: 29 окт 2018, 12:23
- Версия LabVIEW: 2011
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
Что-то я не учел про потерю данных. Вы правы.
Я думал, что в цикле если я поставлю таймер на 0.002с, то этого будет достаточно, чтобы отловить скачки в обычной промышленной 50Гц сети.
Я пишу лабораторную работу для студентов, чтоб они могли наглядно исследовать скачки тока при пуске двигателя, а затем уже пойдут следующие работы по сглаживанию броска.
И еще вопросик задам. Считываю массив данных по 500 измерений. Вывожу их в chart, график как бы периодически обновляется и продолжается. эти же данные добавляю в массив с помощью Build Array и вывожу и после окончания цикла в graph. Отрисовывает только последний набор данных из 500 измерений. Получается Build Array создает массив массивов. Как мне сделать двухмерный продолжающийся массив? чтоб каждый раз я добавлял в конец массива данные (как в стеках)
Я думал, что в цикле если я поставлю таймер на 0.002с, то этого будет достаточно, чтобы отловить скачки в обычной промышленной 50Гц сети.
Я пишу лабораторную работу для студентов, чтоб они могли наглядно исследовать скачки тока при пуске двигателя, а затем уже пойдут следующие работы по сглаживанию броска.
И еще вопросик задам. Считываю массив данных по 500 измерений. Вывожу их в chart, график как бы периодически обновляется и продолжается. эти же данные добавляю в массив с помощью Build Array и вывожу и после окончания цикла в graph. Отрисовывает только последний набор данных из 500 измерений. Получается Build Array создает массив массивов. Как мне сделать двухмерный продолжающийся массив? чтоб каждый раз я добавлял в конец массива данные (как в стеках)
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
простой эксперимент
Build Array работает в двух режимах.
вам нужен второй
покажет, что 2 мс - недостижимая скорость в вашей конфигурации. старт-стоп задачи требует не порядки больше времени.Build Array работает в двух режимах.
вам нужен второй
- Вложения
-
- array.png (4.82 КБ) 3223 просмотра
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
Посмотрите, может так подойдет.
Update: Задержка в Wile loop не нужна, она будет обеспечена Read.vi и при текущих установках составит около 100mS
Длина истории Chart установлена в 400 000, следовательно делим на Sample rate в итоге выходит что на график вмещается около 13 секунд. Думаю достаточно. Запустили VI, запустили мотор, подождали секунд 5 остановили VI и используя zoom анализируем пики тока. Либо вместо остановки VI, поставить на паузу chart А вообще по большому счету, нужно разделять управление от сбора данных....
________________________________________Update: Задержка в Wile loop не нужна, она будет обеспечена Read.vi и при текущих установках составит около 100mS
Длина истории Chart установлена в 400 000, следовательно делим на Sample rate в итоге выходит что на график вмещается около 13 секунд. Думаю достаточно. Запустили VI, запустили мотор, подождали секунд 5 остановили VI и используя zoom анализируем пики тока. Либо вместо остановки VI, поставить на паузу chart А вообще по большому счету, нужно разделять управление от сбора данных....
- Вложения
-
- Example Continuous Ai Task.vi
- (30.2 КБ) 61 скачивание
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
So far, the Universe is winning!
-
- beginner
- Сообщения: 11
- Зарегистрирован: 29 окт 2018, 12:23
- Версия LabVIEW: 2011
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
Большое спасибо вам за уделенное время. Буду разбираться.
Если убрать галочку с Transpose array, то пишет, что не хватает памяти
И вопрос еще, а если мне надо три аналоговых сигнала считывать, три таких структуры делать, как на рисунке?
Если убрать галочку с Transpose array, то пишет, что не хватает памяти
И вопрос еще, а если мне надо три аналоговых сигнала считывать, три таких структуры делать, как на рисунке?
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Помощь с фильтрацией сигнала и выводом в graph
какие структуры?GuRax писал(а): И вопрос еще, а если мне надо три аналоговых сигнала считывать, три таких структуры делать, как на рисунке?
все три канала надо читать в одной задаче. На выходе будет 2D массив или его аналог.
На один тип каналов на одном устройстве вы не сможете навесить три разные задачи.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Помощь с фильтрацией сигнала и выводом в graph
Мenu -> File -> Create Project ...-> в окне Create Project в дереве слева выбрать -> Sample Project -> в списке справа выбрать проект Continuous Measurement and Logging (NI-DAQmx) -> button Next -> создаем новый проект -> в нем все ответы на Ваши вопросы:)GuRax писал(а):... если мне надо три аналоговых сигнала считывать, три таких структуры делать, как на рисунке?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение