Смекни!
smekni.com

Генерирование детерминированных процессов в среде LabVIEW (стр. 2 из 2)

- вычисление процесса по формуле,

- формирование процесса с использованием имеющихся в LabVIEW элементарных функций

- использование имеющихся в LabVIEW генераторов детерминированных процессов.

Рассмотрим эти способы подробнее.

Вычисление детерминированного процесса по формуле. Для этого используется структура LabVIEW “FormulaNode” (Формула). Внутри этой структуры записывается формула по обычным для языка программирования высшего уровня правилам. Формул может быть несколько, каждая из них должна заканчиваться знаком “;” (точка с запятой).

В данной лабораторной работе ограничимся генерированием отрезка синусоидального процесса длиной в k периодов. Непрерывный процесс записывается так:

Y = Asin(2πft + φ) = Asin(2πt/T + φ).

Перейдем к дискретному времени, подставив в формулу t = iTд, где Тд – интервал дискретизации. Тогда

Y = Asin(2πiTд/T + φ) = Asin(2πi/N + φ),

где N = T/Tд – количество отсчетов за период синусоиды.

Изменяя i от 0 до N - 1, получим N отсчетов синусоидального процесса за период синусоиды. Чтобы сгенерировать синусоидальный процесс длительностью k периодов, нужно увеличить верхний предел i до kN – При этом в k раз увеличивается количество отсчетов. Если нужно сохранить количество отсчетов на всю реализацию неизменным при изменении количества периодов k, то увеличивают интервал дискретизации. Для такого варианта

Y = Asin(2πki/N + φ).


Здесь N равно количеству отсчетов на всю реализацию синусоидального процесса, содержащего k периодов синусоиды.

Воспользуемся именно этой формулой. Так как размерность начальной фазы φ в этой формуле – радианы, а задавать фазу удобнее в градусах, то следует перейти от радианной меры к градусной.

Y = Asin(2πki/N + φ0π/180). ( 1)

Запись этой формулы в структуре FormulaNode показана на рис. 4.

Рис. 4

Имена всех входных и выходных переменных вводятся соответственно во входные и выходные терминалы. Терминалы образуются щелчком ПКМ на границе структуры в предполагаемом месте терминала и выбором команд AddInput (Добавить вход) или AddOutput (Добавить выход). В появившемся зачерненном прямоугольнике записывается имя переменной.

В структуре FormulaNode рассчитывается только одно значение переменной Y при заданных входных переменных. Чтобы рассчитать все N значений при изменяющемся i, нужно использовать структуру ForLoop (Цикл с фиксированным числом итераций). Она эквивалентна текстовому оператору: fori = 0 toN – 1 do На рис. 5 приведена схема генерации отрезка синусоиды со всеми элементами управления и индикации. Количество рассчитываемых значений равно количеству циклов N, которое задается подачей на терминал числа итераций (прямоугольник с буквой N в левом верхнем углу структуры) соответствующего числа. Текущее число завершенных итераций цикла содержится в терминале счетчика итераций (прямоугольник с буквой i внизу слева).

Рис. 5

В LabVIEW генерируемый процесс представляет собой массив чисел. Поэтому выходной терминал структуры ForLoop по умолчанию находится в состоянии формирования массива EnableIndexing (Включить индексирование). При этом выходной терминал имеет вид

. Если индексирование отключено (DisableIndexing), то на выходе будет последнее рассчитанное значение. Переключить состояние терминала можно, щелкнув по нему ПКМ и выбрав соответствующую команду. Сформированный массив подается на другие узлы только после завершения цикла.

Формирование процесса с использованием имеющихся в LabVIEW элементарных функций. Для формирования процесса используется та же формула ( 1), только для выполнения математических операций сложения, вычитания, умножения, деления, а также нелинейных операций используются функциональные узлы. Они находятся в подпалитре Numeric палитры Functions. Блок-схема программы, реализуемой таким образом, показана на рис. 6.


Рис. 6

Использование имеющихся в LabVIEW генераторов детерминированных процессов. В LabVIEW имеется большой набор ВП, генерирующих различные детерминированные процессы. Их можно разделить на три группы, различающиеся представлением выходного процесса и заданием его параметров. Это группы: Pattern (отрезок, образчик, шаблон), Wave (колебание, волна) и Waveform (сигнал, осциллограмма). Рассмотрим генераторы синусоидальных процессов.

ВП SinePattern (рис. 7) генерирует массив SinusoidalPattern, содержащий отрезок синусоидального сигнала. На рисунке приведены названия терминалов ВП и тип данных, подаваемых на терминалы.

Рис. 7

Значения массива рассчитываются по формуле (1). Массив задается следующими параметрами:

samples (выборки) – количество отсчетов на весь процесс (количество элементов в массиве) – N. Обозначение I32 означает, что это число целое, 32 бита;

amplitude (амплитуда) – амплитуда синусоиды – А. (DBL означает действительное число двойной точности);

phase (degrees) (фаза в градусах) – начальная фаза – φ0;

cycles (циклы) – количество периодов отрезка синусоиды – k.

ВП SineWave (рис. 8) генерирует массив sinewave, представляющий синусоидальное колебание. Значения массива рассчитываются по формуле

U = Asin(2πfi + φ0π/180).

Рис. 8

По сравнению с предыдущим ВП по другому задается частота и начальная фаза.

Frequency (частота) – выражается в относительных единицах как величина, обратная количеству отсчетов на период: f = k/N.

Resetphase (сбросить фазу) – логический вход, определяющий начальную фазу выходного процесса. По умолчанию на этом входе установлено состояние ИСТИНА. При этом начальная фаза синусоиды устанавливается равной значению на входе phasein (вход фазы). Если на входе Resetphase установить состояние ЛОЖЬ, то начальная фаза устанавливается равной значению фазы на выходе phaseout (выход фазы) при последнем выполнении этого ВП.

На входы samples, amplitude – подается то же, что и в предыдущем ВП.

ВП SineWaveform (рис. 9) генерирует кластер signalout, в котором вместе с массивом синусоидального сигнала содержится информация о частоте сигнала (временной шкале).

Выходной кластер задается следующими параметрами.

Offset (смещение) – постоянная составляющая сигнала.

Рис. 9

Resetsignal (сбросить сигнал) – в состоянии ИСТИНА устанавливает начальную фазу синусоидального колебания равной значению на входе phaseи сбрасывает отметку времени в 0. По умолчанию на этом входе установлено значение ЛОЖЬ.

Frequency (частота) – определяет частоту синусоидального колебания в Гц.

Amplitude – амплитуда.

Phase – определяет начальную фазу синусоидального колебания в градусах. По умолчанию значение равно 0.

Samplinginfo (информация о выборках) – кластер, содержащий следующую информацию о выборках: частота выборок Fs, равная числу выборок в секунду; по умолчанию значение равно 1000; число выборок в осциллограмме #s; по умолчанию число равно 1000.

Для визуального наблюдения генерируемых процессов используется ВП графический индикатор Graph. Если на его вход подается массив, то развертка осуществляется по элементам массива. Можно просмотреть несколько процессов одного типа, предварительно объединив их. Например, если они представлены массивами, то используется функция BuildArray (объединить массивы). Объединять различные типы данных, например, массив и кластер , нельзя.

программирование данные генерирование массив


Заключение

LabVIEW обладает огромным арсеналом достоинств, таких как полноценный язык программирования, интуитивно понятный процесс графического программирования, широкие возможности сбора, обработки и анализа данных, управления приборами, генерации отчетов и обмена данных через сетевые интерфейсы.

Вместе с тем LabVIEW – очень простая и интуитивно понятная система. Неискушённый пользователь, не являясь программистом, за сравнительно короткое время (от нескольких минут до нескольких часов) способен создать сложную программу для сбора данных и управления объектами, обладающую красивым и удобным человеко-машинным интерфейсом. Например, средствами LabVIEW можно быстро превратить старый компьютер, снабжённый звуковой картой, в мощную измерительную лабораторию.

Специальный компонент LabVIEW – Application Builder, позволяет выполнять LabVIEW-программы на тех компьютерах, на которых не установлена полная среда разработки.


Список литературы

1. Н.А. Виноградова, Я.И. Листратов, Е.В. Свиридов. «Разработка прикладного программного обеспечения в среде LabVIEW». Учебное пособие – М.: Издательство МЭИ, 2005.

2. http://www.automationlabs.ru/

3. http://digital.ni.com/

4. http://www.labview.ru/

5. http://ru.wikipedia.org/