Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Генерация детерминированных процессов





 

В пакете LabVIEW возможны три способа генерирования детерминированных процессов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Y = A sin(2πki / N + φ0π/180). (1.1)

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

Рис. 1.3

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

В структуре Formula Node рассчитывается только одно значение переменной Y при заданных входных переменных. Чтобы рассчитать все N значений при изменяющемся i, нужно использовать структуру For Loop (Цикл с фиксированным числом итераций). Она эквивалентна текстовому оператору: for i = 0 to N – 1 do… На рис. 1.4 приведена схема генерации отрезка синусоиды со всеми элементами управления и индикации. Количество рассчитываемых значений равно количеству циклов N, которое задается подачей на терминал числа итераций (прямоугольник с буквой N в левом верхнем углу структуры) соответствующего числа. Текущее число завершенных итераций цикла содержится в терминале счетчика итераций (прямоугольник с буквой i внизу слева).

 

Рис. 1.4

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

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

Рис. 1.5

 

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

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

Рис. 1.6

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

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

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

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

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

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

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

Рис. 1.7

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

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

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

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

ВП Sine Waveform (рис. 1.8) генерирует кластер signal out, в котором вместе с массивом синусоидального сигнала содержится информация о частоте сигнала (временной шкале).

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

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

 

Рис. 1.8

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

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

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

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

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

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

 

Вопросы для проверки подготовки к лабораторной работе

 

1. Назовите окна, в которых ведется разработка виртуального прибора.

2. В какой палитре находятся элементы управления и индикации?

3. В какой палитре находятся элементы блок-схемы ВП?

4. Как производится соединение между собой элементов блок-схемы?

5. Как удалить линию связи?

6. Какие способы генерирования процессов возможны в LabVIEW?

7. Какая структура используется для вычисления значений процесса по формуле?

8. Запишите формулу для вычисления i- го отсчета синусоиды, содержащей k периодов и N отсчетов.

9. Каким символом должна заканчиваться формула в структуре Formula Node?

10. Какому текстовому оператору эквивалентна структура For Loop?

11. Что представляет собой процесс, формируемый структурой For Loop?

12. Что генерирует ВП Sine Pattern?

13. Что генерирует ВП Sine Wave?

14. Чем отличаются формулы для расчета синусоидального процесса в виртуальных приборах Sine Pattern и Sine Wave?

15. Что генерирует ВП Sine Waveform?

16. Зачем требуется отдельный осциллограф для просмотра процесса с ВП Sine Waveform?

 

Программа работы.

 

1. Подготовка к работе.

Вызвать пакет LabVIEW двойным щелчком ЛКМ по иконке пакета. В появившемся окне LabVIEW щелкнуть ЛКМ на New. В окне New выделить Blank VI, подтвердить установку – ОК. Появятся два окна Untitled 1 Front Panel и Untitled 1 Block Diagram. Любое из окон можно развернуть на весь экран, свернуть или расположить рядом по горизонтали или по вертикали. Расположить окна рядом по горизонтали: Window → Tile Left and Right.

2. Сформировать лицевую панель.

2.1. Вывести на лицевую панель цифровые органы управления: “Количество отсчетов - N ”, “Количество периодов - k ”, “Начальная фаза”: Controls → Num Ctrls → Num Ctrl. В черном поле Numeric записать название органа управления. Обратите внимание, что одновременно с размещением элемента управления на лицевой панели появляется соответствующий ему узел в окне BD. Если забыли написать название, то это можно сделать, щелкнув дважды ЛКМ по названию Numeric.

2.2. Вывести на лицевую панель плавный регулятор амплитуды “Амплитуда”: Controls → Num Ctrls → Knob – круглая ручка (или какой-либо другой плавный регулятор). Для точной индикации амплитуды вывести на лицевую панель цифровой индикатор: Controls → Num Inds → Num Ind.

2.3. Вывести на лицевую панель осциллограф: Controls → Graph Inds → Graph. В черном поле “Waveform Graph” записать название “Осциллограф”.

2.4. Расположить на лицевой панели органы управления и индикации, в соответствии с вашими представлениями об удобстве работы. Для перемещения элемента нужно его выделить (навести инструмент выделения на элемент и щелкнуть ЛКМ) и при нажатой ЛКМ переместить элемент в требуемое место. При желании можно изменить размеры экрана осциллографа перемещением маркера, наведя на него указатель мыши, пока он не превратится в двустороннюю стрелку (Осциллограф должен быть выделен.). Для выравнивания расположения органов управления можно воспользоваться инструментами , расположенными в полосе инструментальной панели. Операции, проводимые ими, легко понять из ниспадающего графического меню, появляющегося при нажатии на соответствующую клавишу.

3. Сгенерировать синусоидальный процесс, используя формульный узел, и просмотреть его на осциллографе.

3.1.Развернуть окно BD на весь экран. Переместить все элементы управления на левую сторону, а осциллограф на правую сторону окна. При расположении элементов блок-схемы можно ориентироваться на полную блок-схему ВП, приведенную на рис. 1.9.

  Рис. 1.9

 

3.2. Вывести в окно BD структуру “Формула”: Functions → All Functions → Structures → Formula Node. В окне появится значок структуры: fx в пунктирном квадратике. Поместить его на предполагаемое место одного из углов структуры. Нажать ЛКМ и переместить этот значок так, чтобы образовался пунктирный прямоугольник достаточных для размещения формулы размеров. Отпустить ЛКМ. Стороны прямоугольника станут сплошными и утолщатся. Размеры прямоугольника можно изменять. Для того надо выделить структуру. На середине сторон и в углах появятся маркеры. Наведя на них указатель мыши (он превратится в двустороннюю стрелку) и нажав ЛКМ, можно переместить границы.

3.3. Ввести указатель мыши внутрь структуры, щелкнуть ЛКМ. В левом верхнем углу появится курсор. Набрать формулу (1.1), в конце поставить точку с запятой.

3.4. Поместить на сторонах структуры терминалы для входных и выходной переменных. Для этого навести указатель мыши (наклонную стрелку) на требуемое место на стороне структуры, щелкнуть ПКМ, в раскрывшемся меню выбрать команду “Add Input” или “Add Output”, и в появившемся на границе черном прямоугольнике записать имя входной или выходной переменной.

3.5. Сформировать массив, соответствующий выходному процессу. Для этого использовать структуру циклических расчетов For Loop: Functions → All Functions → Structures → For Loop. Щелкнуть ЛКМ. Перемещая значок структуры при нажатой ЛКМ, охватить границей структуры For Loop (пунктирным прямоугольником) структуру Formula Node. Отпустить ЛКМ. Размеры структуры можно изменять так же, как было сказано в п. 3.2. Если требуется удалить границы структуры, не удаляя того, что внутри нее, нужно щелкнуть ПКМ на границе и в раскрывшемся меню выбрать команду Remove For Loop.

3.6. Соединить все узлы в соответствии с рис. 1.4. Линию соединения можно проводить через границы структуры For Loop. При пересечении границы образуется терминал ввода переменной внутрь структуры. Обратите внимание на различный цвет и толщину линий. Цветом обозначается тип переменной: оранжевым – действительные, синим – целые числа. Тонкая линия означает, что по ней передается одно значение переменной, утолщенная – массив.

3.7. Активизировать окно FP. Задать значения параметров: N (произвольное значение от100 до 1000), k (от 1 до10), A (в пределах плавной регулировки) и φ (произвольно). Если в блок-схеме программы нет ошибок, то кнопка запуска ВП имеет вид . Если же стрелка будет сломанной , то в блок-схеме допущены ошибки. Если ошибок нет, запустить ВП, нажав на кнопку запуска. Убедиться, что появившаяся на экране осциллографа синусоида имеет заданные параметры. Обратите внимание, что горизонтальная ось проградуирована в индексах элементов массива (Измените N и убедитесь в этом).

3.8. Если в блок-схеме программы допущены ошибки, то тоже нажать на кнопку запуска. В ответ появится окно Block Diagram Errors с перечислением ошибок. Двойной щелчок ЛКМ на ошибке выделяет элемент в блок-схеме, в котором допущена ошибка и выводит в окне Details подробные сведения об ошибке. В режиме отладки можно использовать режим анимационного показа процесса передачи данных по блок диаграмме. (Нажать кнопку “Подсветка выполнения” и затем кнопку запуска. Остановить выполнение ВП можно, нажав кнопку ). Есть также кнопки пошагового выполнения программы , но чтобы ими пользоваться, надо быть достаточно подготовленным.

4. Сгенерировать синусоидальное колебание, используя функциональные узлы, и просмотреть оба колебания на осциллографе.

4.1. Активизировать окно BD. Вывести в это окно структуру For Loop, внутри которой разместить функциональные элементы, осуществляющие математические преобразования в соответствии с формулой (1.1) (рис. 1.5). Арифметические узлы и константы брать из подпалитры Numeric: Functions → Arith/Compare → Numeric, и синусоидальную функцию – из той же подпалитры Numeric: Trigonometric → Sine. Параметры N, k и А оставить прежними, а для задания начальной фазы ввести цифровой элемент управления “Фаза 2”. Это можно сделать в окне BD, воспользовавшись действием “копировать-вставить”: Ctrl+C → Ctrl+V. Для этого выделить инструментом “Перемещение” иконку “Фаза”, нажать клавишу Ctrl+C, щелкнуть ЛКМ в месте размещения элемента управления “Фаза 2”, нажать клавишу Ctrl+V.

4.2. Объединить выходные массивы обеих схем генерирования синусоидального процесса в двумерный массив, чтобы можно было просмотреть два процесса на одном осциллографе. Для этого ввести узел объединения массивов: Functions →All Functions → Array → Build Array. Выведенный узел имеет один вход. Чтобы добавить еще один вход, надо на узел навести указатель мыши, пока он не превратится в двунаправленную вертикальную стрелку, и при нажатой ЛКМ растянуть узел по вертикали. Подсоединить выход этого узла к осциллографу, а на его входы подать оба массива. Обратите внимание, что многомерный массив, в отличие от одномерного, обозначается двойной линией.

4.3. Проверить составленную блок-схему на отсутствие ошибок (Стрелка на кнопке запуска не разорвана). Активизировать окно FP двойным щелчком ЛКМ на иконке “Фаза 2”. Выделенный элемент управления “Фаза 2” разместить на лицевой панели в удобном месте. Задать значение начальной фазы 2. Запустить ВП. Убедиться в соответствии наблюдаемых колебаний заданным параметрам.

5. Сгенерировать синусоидальное колебание, используя виртуальные приборы, имеющиеся в LabVIEW, и просмотреть все сгенерированные процессы.

5.1. Активизировать окно BD. Ввести в окно генератор отрезка синусоиды Sine Pattern: Functions → All Functions → Analyze→ Signal Processing → Signal Generation → Sine Pattern. Подводя указатель мыши (катушку) к выводам ВП, просмотреть их названия. Подсоединить к Samples – N, к Amplitude – A, к Cycles – k. Для задания начальной фазы ввести цифровой элемент управления “Фаза 3”, пользуясь действиями “копировать-вставить”. Соединить выход элемента “Фаза 3” с выводом Phase. Добавить еще два входа к блоку объединения массивов. К одному из них подсоединить выход ВП Sine Pattern.

5.2.Ввести в окно BD генератор синусоиды Sine Wave: Functions → All Functions → Analyze→ Signal Processing → Signal Generation → Sine Wave. Выводы с уже знакомыми по предыдущему ВП Sine Pattern названиями подсоединить к соответствующим элементам управления. Для задания начальной фазы ввести цифровой элемент управления “Фаза 4”. К выводу f подсоединить результат деления k / N. Выход ВП подсоединить к четвертому входу узла объединения массивов.

5.3. Ввести в окно BD генератор синусоидального сигнала Sine Waveform: Functions → All Functions → Analyze → Waveform Generation → Sine Waveform. К терминалу frequency подсоединить k, к терминалу phase – выход “Фаза 4”, к терминалу amplitude – А. Временные параметры sampling info задаются с лицевой панели ВП Sine Waveform. Лицевая панель ВП вызывается двойным щелчком ЛКМ по иконке ВП. По умолчанию на лицевой панели установлены: частота дискретизации Fs = 1 кГц, и количество выборок на реализацию # s = 1000. Оставим эти данные. Закрыть лицевую панель ВП Sine Waveform. С выхода ВП Sine Waveform снимается не массив, а кластер. Поэтому этот процесс на используемом осциллографе просмотреть нельзя, и требуется отдельный осциллограф. Введем его в окно BD действием “копировать-вставить”. Он введется под именем “Осциллограф 2”. Подсоединить к его входу выход ВП Sine Waveform.

5.4. Убедиться, что в собранной блок-схеме ошибок нет. Активизировать окно FP. Разместить на лицевой панели введенные элементы управления “Фаза 3” и “Фаза 4” и элемент индикации “Осциллограф 2” в соответствии с вашими представлениями об эстетике и удобстве работы с ВП. Для выравнивания элементов по вертикали, горизонтали и расстояний между ними можно воспользоваться кнопками на панели инструментов. Действия, которые инициируются этими кнопками, понятны из ниспадающих графических меню. Запустить ВП. Сравнить процессы. Заметьте, что горизонтальная шкала осциллографа 2 проградуирована в секундах. Длина всей реализации равна # s * Ts = # s / Fs = 1000/1000 = 1 c.

6. Сохранить разработанный ВП (лицевую панель и блок-диаграмму) в своей папке (номер группы – фамилия) под именем “Лабораторная работа 1”

 

Лабораторная работа №2

 







Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.