Список форумов   Список форумов  

Максимум и минимум амплитуды напряжения.

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

Максимум и минимум амплитуды напряжения.

Сообщение beavis » Пт июн 08, 2007 1:08 pm

Имеется генератор кач. частоты. Получаем АЧХ. в этой АЧХ есть частота резонанса и антирезонса, на которых соответсвенно есть максимальный уровень сигнала и минимальный. Как получить наименьшее и наибольшее значение амплитуды сигнала и фиксировать эти частоты? Т.е. нужны 4 паметра, где будут фиксироваться частоты резонанса и антирезонанса и значения мин. и макс. амплитуды.
beavis
Пользователь
 
Сообщений: 14
Зарегистрирован: Чт июн 07, 2007 1:11 pm

Сообщение Orbel » Пт июн 08, 2007 2:22 pm

Для того чтобы найти параметры конкретного тона вам надо использовать функции, которые находятся в View>Functions Palette>Signal Processing>Waveform Measurements.
Конкретные примеры можно найти тут C\.....\labview\examples\measure\maxmpl.llb\Advanced Single Tone Measurements.vi
Orbel
Активный пользователь
 
Сообщений: 45
Зарегистрирован: Пн май 07, 2007 3:22 pm
Откуда: National Instruments

Сообщение beavis » Пт июн 08, 2007 3:36 pm

Изображение

я наверное не чётко изложил... На скриншоте есть измеренная АЧХ пьезоэлемента. Это не постоянное измерение сигнала. Если посмотреть на скриншот, то есть окошко с курсором. При его наведении на графике на низший пик имеется одна амплитуда, при наведении на высший пик - другая. Так вот, нужно в процессе разового измерения зафиксировать значения минимального и максимального значения амплитуды и значения соответствующих частот. Т.е. в начале измерительного процесса (допустим) значение амплитуды сигнала при начальной частоте качания 800 Гц составило 0.5 В. Есть 2 окошка, которые будут показывать след результаты:
мин. амплитуды - 0.5
мах. амплитуды - 0.5

затем в процессе качания дойдя до частоты антирезонанса (в нашем случае она первая), аплитуда постепенно упала (например) до 0.2 В. В этом случае мы должны иметь показания:
мин. амплитуды - 0.2
мах. амплитуды - 0.5

Потом начал наблюдаться некоторый подъём амплитуды и в этом случае мы должны получить неизменными значения мах и мин амплитуд. Дойдя до частоты резонанса, мы увидим резкое увеличение значения амплитуды и должны иметь след показания (например):
мин. амплитуды - 0.2
мах. амплитуды - 4.5

Т.е. нужно фиксировать масимальное и минимальное отклонение от начального уровня сигнала.

И ещё очень желательно так же фиксировать значение частоты резонанса и антирезонанса, для автоматизации расчёта параметров пьезокерамических материалов.
beavis
Пользователь
 
Сообщений: 14
Зарегистрирован: Чт июн 07, 2007 1:11 pm

Сообщение Андрей » Пт июн 08, 2007 5:06 pm

Используйте функцию Extract Multitone Information. На вход подавайте сигнал, а так же количество пиков. В вашем случае их 2. На выходе из функции получите информацию о двух пиках в спектре: апмлитуду, частоту, фазу.
Это самый правильный вариант.
Андрей
Активный пользователь
 
Сообщений: 46
Зарегистрирован: Вт янв 23, 2007 6:01 pm
Откуда: National Instruments

Сообщение beavis » Сб июн 09, 2007 8:11 pm

Мы получаем массив, как я понимаю, а как из него извлечь необходимые данные?
beavis
Пользователь
 
Сообщений: 14
Зарегистрирован: Чт июн 07, 2007 1:11 pm

Сообщение Orbel » Пн июн 11, 2007 12:19 pm

Я могу вам порекомендовать использовать функцию которое поищет максимальное и минимальное значение в массиве. Из картинки видно, что у вас есть АЧХ, тогда вам надо его преобразовать в массив и работать уже с массивом, а функция максимума и минимума найдет максимальное и минимальное значение и выдаст их, а соответствующие индексы будут частотами плюс некоторое постоянное (частота с которого начинается АЧХ, на картинке это 800 Гц). Это вариант.
Orbel
Активный пользователь
 
Сообщений: 45
Зарегистрирован: Пн май 07, 2007 3:22 pm
Откуда: National Instruments

Сообщение beavis » Пн июн 11, 2007 3:06 pm

Думаю это и нужно. только просьба - распишите плз как можно подробнее как это реализовать.
beavis
Пользователь
 
Сообщений: 14
Зарегистрирован: Чт июн 07, 2007 1:11 pm

Сообщение Orbel » Пн июн 11, 2007 3:26 pm

Если вы данные получаете в цикле то вам надо в цикле создать массив (или уже в созданном массиве делать изменения) и с каждой итерацией добавлять элемент, возможно еще использование авто индексации. Потом, выходя из массива надо использовать функцию нахождения максимума и минимума.
Если будут вопроси на support.russia@ni.com пришлите mail и я вам пришлю пример. (подпишитесь для Орбела)
Orbel
Активный пользователь
 
Сообщений: 45
Зарегистрирован: Пн май 07, 2007 3:22 pm
Откуда: National Instruments

Сообщение beavis » Пн июн 11, 2007 4:50 pm

кстати, если можно, то ещё и пример как создавать отчёт в формате таблиц Exel.
beavis
Пользователь
 
Сообщений: 14
Зарегистрирован: Чт июн 07, 2007 1:11 pm

Сообщение beavis » Ср июн 20, 2007 12:30 pm

Андрей писал(а):Используйте функцию Extract Multitone Information. На вход подавайте сигнал, а так же количество пиков. В вашем случае их 2. На выходе из функции получите информацию о двух пиках в спектре: апмлитуду, частоту, фазу.
Это самый правильный вариант.


Мы на выходе получаем массив (на сколько я понял 3х-мерный), а как из него получить значения частоты, фазы и амплитуды? С помощью какой (каких) функции преобразовать в (хотя бы) одномерные массивы, из которых потом уже можно будет получить с помощью Array Max & Min значания.
beavis
Пользователь
 
Сообщений: 14
Зарегистрирован: Чт июн 07, 2007 1:11 pm

Сообщение beavis » Ср июн 20, 2007 12:52 pm

И ещё подскажите пожалуста, как с помощью ф-ии Array Max & Min, найти значения не с первого элемента массива, а например со 2го или 5го? Т.е. как задать начальный номер элемента массива с которого следует обрабатывать массив?

Дело в том что из-за начального установления уровня сигнала чаще всего не удаётся правильно рассчитать необходимые данные.

Изображение

Как видно из рисунка, необходимый для вычислений пик на уровне -15, гораздо выше начального уровня сигнала. Но если начать массив не с првого элемента 800 Гц, а со второго 801 Гц, то в этом случае уже будет верным результат вычислений, т.к. минимальное значение окажется для нас истинным.

Изображение

Или вот на этом рисунке мы имеем изначально высокий уровень сигнала, превышающий уровень резонанса.

Данные мы получаем с помощью цикла For (автоиндексация), так вот нужно начать выбирать максимальные и минимальные элементы массива не с первого, а с некоторого следующего... (И начальный элемент массива задавать можно например с помощью константы)
beavis
Пользователь
 
Сообщений: 14
Зарегистрирован: Чт июн 07, 2007 1:11 pm

Сообщение Orbel » Ср июн 20, 2007 1:10 pm

Вам надо удалить первые элементы массива, для этого вам нужно использовать эту функцию "Delete From Array", на входы даёте “массив” с которого вы хотите удалить часть, “индекс” начиная с которого надо удалить и “длину” сколько элементов надо удалить.
Orbel
Активный пользователь
 
Сообщений: 45
Зарегистрирован: Пн май 07, 2007 3:22 pm
Откуда: National Instruments

Сообщение Orbel » Ср июн 20, 2007 1:11 pm

Или эти элементы просто заменить нулями с помощью функции "Replace Array Subset"
Orbel
Активный пользователь
 
Сообщений: 45
Зарегистрирован: Пн май 07, 2007 3:22 pm
Откуда: National Instruments

Сообщение beavis » Ср июн 20, 2007 1:36 pm

Спасибо, помогло :)

Подскажите, а как сделать что бы минимальное и максимальное значение шкалы Х XY Graph были равны заданным, например, в компонентах Numeric Control

Изображение
beavis
Пользователь
 
Сообщений: 14
Зарегистрирован: Чт июн 07, 2007 1:11 pm

Сообщение Orbel » Ср июн 20, 2007 5:28 pm

В блок диаграмме на XY Graph делаете правый клик и выбираете Create>Property Node>X Scale>Range и там выбираете максимальное или минимальное значение (тоже самое делаете для Y шкалы), потом на полученном "Property Node" делаете правый клик и выбираете "Change to Write" и к входу подключаете "Numeric Control".
Orbel
Активный пользователь
 
Сообщений: 45
Зарегистрирован: Пн май 07, 2007 3:22 pm
Откуда: National Instruments

След.

Вернуться в LabVIEW

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron