Помощь с фильтрацией сигнала и выводом в graph

Простейшие вопросы в области инженерной разработки
GuRax
beginner
beginner
Сообщения: 11
Зарегистрирован: 29 окт 2018, 12:23
Версия LabVIEW: 2011
Контактная информация:

Помощь с фильтрацией сигнала и выводом в graph

Сообщение GuRax »

Добрый день.
В Measurement & Automation создана симуляция прибора ni-6024e
В лабвью добавляем сигнал daq assistant (voltage, 1 sample (on demand)).

Вопрос № 1. Как правильно отразить его в Waveform graph? (как добавить метку времени)

Вопрос № 2. Сигнал имеет форму синусойды. К примеру: мы пускаем двигатель. В Waveform видим, что броски тока идут как отрицательные, так и положительные. Как нам отфильтровать сигнал, чтоб значение было только положительным и без волн (к примеру сигнал отфильтрован по максимальным амплитудам волн)

Спасибо.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение Artem.spb »

1) учитесь работать без daq assistant, жизнь станет намного проще.
2) отобразить 1 точку на графике невозможно. Если хочется именно по такой сnранной схеме, исполmтзуйте chart.
3) опять же, как из одной точки вы получаете синус?
если сигнал накоплен, то используйте Amplitude and Levels VI из палитры Waveform Measurements VIs
Ну и в целом по той палитре прогуляйтесь. может более интересную функцию найдёте.
GuRax
beginner
beginner
Сообщения: 11
Зарегистрирован: 29 окт 2018, 12:23
Версия LabVIEW: 2011
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение GuRax »

2 - проблема как раз с накоплением. Так понимаю на вход graph надо подавать массив. Как его создать?
3 - исходя из вышеуказанного массива делать преобразования.
Amplitude and Levels я так понял выдает число, а не сам график. (к примеру в сети напряжение скачет 220 и -220, а чтоб график показывал только 220

на XY Graph удалось отрисовать график.

К примеру как на рисунке, входной сигнал мы получаем как белой линией, а на графике хотим видеть красным

запрещено грузить фото на сторонние ресурсы
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение Artem.spb »

1) работать с оборудованием в таком режиме - циничное извращённое издевательство.
На каждом цикле вы создаёте DAQ-задачу, берёте точку и удаляете задачу.
Первый и третий шаги жрут ресурсов в несколько раз больше, чем второй. Если уж никак без ассистентов, запрашивайте сразу массив данных.
2) про огибающую можно порыскать не форуме, например, тут обсуждали
GuRax
beginner
beginner
Сообщения: 11
Зарегистрирован: 29 окт 2018, 12:23
Версия LabVIEW: 2011
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение GuRax »

Ну как инженер на лекции niglobal показывал, так и пытаюсь сделать. Пока плохо разбираюсь.
Вы можете подсказать, как мне правильно при получении единичного сигнала, добавить к нему метку времени, сохранить в массив и затем по истечении какого-то времени вывести график в graph?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение Artem.spb »

У меня есть ощущение, что опытные ползователи :labview: не понимают, что такое динамический сигнал и не умеют им пользоваться. Эту мысль даже на форуме NI встречал
Так что НЕ подскажу.
Ещё раз. В настройках ассистента берите не одну точку, а массив. И его отображайте на графике.
А ещё лучше посмотрите стандартные примеры, там есть и про то, как с DAQ работать. Точное название сказать не могу, на этой машине DAQ не стоит.
У вас вообще этот период фиксирован, или меняется? Если первое, то надо сразу запрашивать известное кодичество точек. Если второе, то придётся поколдовать. Но в любом случае, если нужен массив, глупо собирать его по одной точке.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение Artem.spb »

вот обзор функций
http://www.ni.com/product-documentation/2835/en/
GuRax
beginner
beginner
Сообщения: 11
Зарегистрирован: 29 окт 2018, 12:23
Версия LabVIEW: 2011
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение GuRax »

Задача в следующем, может поможет в общем понимании.

Есть двигатель. Трансформатор тока включен в схему питания двигателя.
С него мы получаем значение силы тока (синусойда от -5В до +5В).
Необходимо видеть мгновенный график тока и исторический.
как одновременно их получить? Считываем сигнал (on demand). С мгновенным графиком проблем нет, как нам накопить данные для исторического?

Пробовал. Считывал период, graph строится, но возникает проблема с chart.

Хотелось бы, чтобы я нажал кнопку, пошло отображение мгновенного графика (chart) в виде синусойды. Мы увидели пусковые токи.
По истечении 3х секунд двигатель останавливается, мгновенный график тоже. у нас накапливается массив данных с метками времени. мы его обрабатываем по своему усмотрению и выводим в graph.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение Artem.spb »

В вашем варианте (опрос по запросу) вы кучу данных потерять можете, если там пик проскочит между запросами.
За 3 секунды существенного ничего не произойдёт, так что можно смело набирать график, а потом отображать.
Если прям хочется на лету обновлять, то при мерно так
daq.png
Только берите с DAQ не одну точку, а кусок в 100-200 мс. Визуально разницы никто не заметит, а машине гораздо проще будет.

повторяю, DAQ тут не стоит, поэтому картинками приходится
GuRax
beginner
beginner
Сообщения: 11
Зарегистрирован: 29 окт 2018, 12:23
Версия LabVIEW: 2011
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение GuRax »

Что-то я не учел про потерю данных. Вы правы.
Я думал, что в цикле если я поставлю таймер на 0.002с, то этого будет достаточно, чтобы отловить скачки в обычной промышленной 50Гц сети.

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

И еще вопросик задам. Считываю массив данных по 500 измерений. Вывожу их в chart, график как бы периодически обновляется и продолжается. эти же данные добавляю в массив с помощью Build Array и вывожу и после окончания цикла в graph. Отрисовывает только последний набор данных из 500 измерений. Получается Build Array создает массив массивов. Как мне сделать двухмерный продолжающийся массив? чтоб каждый раз я добавлял в конец массива данные (как в стеках)
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение Artem.spb »

простой эксперимент
time.png
time.png (13.15 КБ) 3150 просмотров
покажет, что 2 мс - недостижимая скорость в вашей конфигурации. старт-стоп задачи требует не порядки больше времени.

Build Array работает в двух режимах.
вам нужен второй
Вложения
array.png
array.png (4.82 КБ) 3150 просмотров
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение taras_33 »

Посмотрите, может так подойдет.
Ai Continuous.png
Continuous Ai.png
________________________________________
Update: Задержка в Wile loop не нужна, она будет обеспечена Read.vi и при текущих установках составит около 100mS

Длина истории Chart установлена в 400 000, следовательно делим на Sample rate в итоге выходит что на график вмещается около 13 секунд. Думаю достаточно. Запустили VI, запустили мотор, подождали секунд 5 остановили VI и используя zoom
zoom.png
zoom.png (5.32 КБ) 3132 просмотра
анализируем пики тока. Либо вместо остановки VI, поставить на паузу chart
Pause.png
Pause.png (2.88 КБ) 3132 просмотра
А вообще по большому счету, нужно разделять управление от сбора данных....
Вложения
Example Continuous Ai Task.vi
(30.2 КБ) 59 скачиваний
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!
GuRax
beginner
beginner
Сообщения: 11
Зарегистрирован: 29 окт 2018, 12:23
Версия LabVIEW: 2011
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение GuRax »

Большое спасибо вам за уделенное время. Буду разбираться.

Если убрать галочку с Transpose array, то пишет, что не хватает памяти

И вопрос еще, а если мне надо три аналоговых сигнала считывать, три таких структуры делать, как на рисунке?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение Artem.spb »

GuRax писал(а): И вопрос еще, а если мне надо три аналоговых сигнала считывать, три таких структуры делать, как на рисунке?
какие структуры?
все три канала надо читать в одной задаче. На выходе будет 2D массив или его аналог.
На один тип каналов на одном устройстве вы не сможете навесить три разные задачи.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Помощь с фильтрацией сигнала и выводом в graph

Сообщение Blackman »

GuRax писал(а):... если мне надо три аналоговых сигнала считывать, три таких структуры делать, как на рисунке?
Мenu -> File -> Create Project ...-> в окне Create Project в дереве слева выбрать -> Sample Project -> в списке справа выбрать проект Continuous Measurement and Logging (NI-DAQmx) -> button Next -> создаем новый проект -> в нем все ответы на Ваши вопросы:)
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»