Two different arrays on one chart

Простейшие вопросы в области инженерной разработки
Ответить
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Two different arrays on one chart

Сообщение jane_wild »

Ребята прошу помощи / совета. Суть такова: работают два AI модуля на cDAQ с различной частотой дискретизации. Необходимо отобразить собранные данные на одном Chart. Для простоты и лучшего понимания я сохранила в константы два массива ( по одному ai каналу с каждого модуля) и уже с ними провожу манипуляции. То бишь эти массивы получены за одинаковый период времени но с различной частотой дискретизации и как следствие имеют различный размер. Каким образом возможно отобразить их на одном waveform chart? В приложеном VI мной сделана робкая попытка сделать это. Но почему то после resample массив немного меньше по размеру (114142 точек вместо ожидаемых 115000). К тому же мне важна скорость и я сомневаюсь что это будет работать со всеми 32 мя каналами в реальном времени. Может нужно испоьзовать интерполяцию, но я не понимаю каким образом сделать это. Посоветуйте как правильно поступать в данном случае. Спасибо
Вложения
Two Difference Array - one Chart.vi
(670.66 КБ) 113 скачиваний
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Two different arrays on one chart

Сообщение Borjomy_1 »

К сожалению, не могу открыть VI (версия слишком новая). Но могу посоветовать следующее: использовать массив Waveforms ( у каждого канала свой t0 и dt ) для подачи на Chart, должно адекватно отображаться без ресемплинга. Единственное требование, чтобы t0 следующей пачки плота был не меньше t0+dt*N предыдущей пачки, иначе буфер Chart будет очищаться и строиться заново. А так в буфер можно кидать Waveform хоть с одной точкой в массиве Y. Получается типа XY Graph с буфером.
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Two different arrays on one chart

Сообщение jane_wild »

Вот сохранила в LV2010
Вложения
Two Difference Array - one Chart.vi
(340.81 КБ) 120 скачиваний
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Two different arrays on one chart

Сообщение Borjomy_1 »

Надо знать dt сигналов. А так - вот простое решение.
upd достаточно поставить dt1 = 0.01, dt2 = 0.001 и все нормально показывает
Вложения
two diff array.png
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Two different arrays on one chart

Сообщение jane_wild »

Спасибо, это работает. Но я думаю что было бы удобнее одновременно передавать данные в виде 2D массива из acquisition loop для signal processing и далее в user interface loop. А для этого нужно преобразовать их к одному размеру, иначе недостающие данные в "медленных" каналах заполняются нулями... К тому же мне будет нужно переделать весь проект, который для манипуляций с данными использует именно 2D array Раньше я встречала где то решение использующее интерполяцию (а может это был re-sampling), там после сбора данных из различных источников, для signal processing, передавался кластер (2D массив собраных каналов и multiplier для графика)
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Two different arrays on one chart

Сообщение Borjomy_1 »

Добавьте к 2D массиву данных еще описание: размер данных медленного канала, dt первого и второго сигналов. Для унификации это массив из размера данных и dt. Пусть дальше у вас по программе они путешествуют, только в сочетании с этим описанием вы можете их спокойно и непротиворечиво обрабатывать.
Ответить

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