Мегаобучалка Главная | О нас | Обратная связь


Пример лабораторной работы в Labview



2016-09-16 2434 Обсуждений (0)
Пример лабораторной работы в Labview 4.67 из 5.00 3 оценки




Запишем математические модели сигналов:

Конечный сигнал будет являться зашумленной суммой простых сигналов.

Создадим новый виртуальный прибор. У нас откроется два окна. Левое это лицевая панель, а правое окно это блочная схема.

Для того что бы наш цикл изменялся через определенные промежутки времени необходим цикл WhileLoop( while – пока, в то время как; loop – петля).

· Нажмем правой кнопкой мыши на блок-схеме и выберем в меню

Functions →Programming →Structures →WhileLoop

· Курсор мыши примет вид маленького пунктирного прямоугольника с черным левым верхним уголком

· Выделим ту область поля в блок схеме, в которую хотим поместить нашу программу , нажав и удерживая левую кнопку, обведем группу пунктирным прямоугольником.

· После того, как мы отпустим левую кнопку мыши, программа будет выглядеть так, как показано на рис. 1.1.

· Если действие не получилось с первого раза, можно его отменить, нажав клавиши <Ctrl>+<z>.

Рисунок 1.1 - Цикл WhileLoop

· После того, как мы поместили цикл WhileLoopна блок- схему, кнопка циклического выполнения заблокировалась, а на кнопке запуска программы появилось изображение сломанной стрелочки.

Нужно задать терминал условия выхода из цикла, у нас это будет кнопка Stop.

Исправим ошибку на блок-схеме. Для этого подключим к терминалу условия цикла кнопку, прерывающую его выполнение.

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

· Наведем указатель мыши на контакт терминала, и когда курсор превратится в катушку с проводом (Wiringtool), нажмем правую кнопку мыши

· В появившемся меню выберем CreateControl(создать элемент управления)

· В результате на передней панели появится кнопка управления Stop, а ее терминал на блок схеме автоматически соединится с терминалом условия цикла (см. рис. 1.2)

Рисунок 1.2 – Пример соединения кнопки STOP с условием цикла

На лицевой части появится такая кнопка.

В структуре WhileLoop есть два терминала:

LoopIteration (Повторение цикла). Имеет один контакт, расположенный справа – выход, значение которого соответствует количеству выполненных повторений цикла.

Синий цвет терминала и контакта показывает, что выходное значение представлено целым числом.

а) или б)

LoopCondition(Условие цикла) терминал условия выхода из цикла. Имеет один контакт слева – вход. Он может работать в двух режимах:

а) StopifTrue (остановить, если Истинный) – цикл прерывается, если на этот терминал поступает значение булевой переменной True (Истинный).

б) ContinueifTrue (продолжать, если Истинный) – цикл продолжается до тех пор, пока значение этого терминала –True. Зеленый цвет терминала и контакта показывает, что формат данных, передаваемых ему, булев (логический).

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

В среде LabView все процедуры и функции представлены виде иконок.

Поместим на нашу блок-схему иконку операции деления.

· Нажмем правую кнопку мыши на белом поле окна блок схемы.

· В появившемся меню Functions (функции), выберем раздел Programming (программирование) NumericDivide (Делить).

· Поместите на блок схему иконку оператора деления.

· Подведите курсор к иконке. По краям иконки появятся точки с отрезками линий – контакты, при помощи которых элементы блок-схемы соединяются между собой.

· Подведите курсор к контакту оператора делить.

· При этом он примет вид катушки с проводом (Wiringtool– инструмент для соединения проводами), а внизу появится подсказка – назначение данного контакта.

Для построения графка нам необходма радианная мера угла.

· Подведем курсов мыши к контакту. У и нажмем правой кнопкой мыши.

· Затем в появившемся окне выберем Create Constant

· У нас должно появится следующее . Нажмем на нолик и введем соответствующее число. Мы введем 360

Создадм консанту

· Нажмем правую кнопку мыши на белом поле окна блок схемы.

· В появившемся меню Functions (функции), выберем раздел Programming (программирование) Numeric→Math ScientificConstant.

· Поместите на блок схему нашу константу.

· Соединим нашу константу с движком X функции умножения.

Так направление можно задавать, нажимая на левую кнопку мыши. Нажатие на правую кнопку отменяет рисование провода.

Создадим функцию умножения.

Для этого воспользуемся алгоритмом, который был описан выше и выберем в меню NumericMultiply(Умножить).

Помесим функцию на блок схему.

Соединим контакт X/Y - функции деления с контактом - функции умножения.

Контакт - функции умножения соединим с терминалом LoopIteration


Построение графика

· Нажмем правую кнопку мыши на белом поле окна блок схемы.

· В появившемся меню Functions(функции), выберемразделMathematics→Elementary&SpecialFunctionsTrigonometricFunctions→Sine

· Поместите на блок схему иконку функции синуса.

· Соединим левый контакт функции синуса с контактом функции умножения.

Создадим временную диаграмму отображения синуса

· Нажмем правую кнопку мыши на клетчатом окне лицевой панели.

· Поместим на переднюю панель самописец ModernGraphWaveformChart(cамописец, график изменения сигнала современем).

· На блок схеме перетащим терминал WaveformChartв цикл WhileLoop

· Соединим его с правым контактом функции Sine

Запусим нашу программу и посмотрим , что получилось.Мы видим , что график изменяется слишком быстро. Для того что бы он изменялся медленне настроим время за которое происходит одна итерация.

· Нажмем правую кнопку мыши на белом поле окна блок схемы.

· В появившемся меню Functions (функции), выберем раздел Programming (программирование) Timing→Wait(ms).

· Поместите на блок схему нашэлемент времени.

· Создадим для него константу равную 50.


Теперь за время 50 мс происходит одна итерация.
Блок-схема должны выглядеть примерно, так как на рис. 1.3.

Лицевая панель показана на рис. 1.4.


Рисунок 1.3 – Пример построения синусоиды в блок-схеме

Рисунок 1.4 – Пример построения синусоиды на лицевой панеле

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

Изменение амплитуды

· Для этого создадим функцю умножения

· Удалим провода соединяющие график и синус.

Создадим веркальный движок с указателем
изменения амплитуды

· Поместим на переднюю панель движок ModernNumericVerticalFullSlide

Для того что бы изменять Max и Min шкалы достаточно нажать на цифру и вписать нужное нам значение. Аналогично меняем и название.

· Соединим контакт функции умножения с контактом вертикального движка.

· Контакт соединим с функцией Sine

· Контакт с нашим графиком

Должно получиться следующее, как показано на рис. 1.5

Рисунок 1.5 – Пример построения синусоиды с заданной задержкой

Запустим программу и попробуем изменить амплитуду

Сложение графиков

Создадим ещё один график Меандр

· Нажмем правую кнопку мыши на белом поле окна блок схемы.

· В появившемся менюFunctions(функции), выберем раздел Mathematics→Elementary&SpecialFunctions→GatingFunctions → Square Functions.

Соединим, так как показано на рис. 1.6

 

Рисунок 1.6 – Пример сложения двух функций на блок-схеме

Индикатор изменения амплидуты для второго графика создать самостоятельно.

Создание шума

· Создадим случайную помеху, создаваемую генератором случайных чисел от 0 до 1 (ProgrammingNumericRandomNumber (0-1))

Изначально предел выпадение случайных чисел стоит от 0 до 1. Для нашей задачи предел выпадения чисел должен быть от -1 до1.

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

Рисунок 1.7 – Пример сложения дувух функций с заданным диапазонам шума

На лицевой панеле на графике будет отображатся следующее
Сигнал изменяется, но при этом у него есть помехи.

На рис. 1.7.1 показано как изменятеся сигна при зачениях амплитуд не равных нулю

На рис. 1.7.2 аплитуда А1=0

На рис.1.7.3 амплитуда А2=0

 

Рисунок 1.7.1 – Зашумленная сумма сигналов

Рисунок 1.7.2 – Зашумленный сигнал меандера

Рисунок 1.7.3 - Зашумленный сигнал синуса

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

Получим слудующую блок-схему, которая показана на рис. 1.8

На лицевой панеле будет отображатся слудующее как показано на рис. 1.9

Рисунок 1.8 – Блок-схема готовой программы

 

Рисунок 1.9 – Лицевая панель готовой программы

Мы получили программу которая показывает изменение сигнала с изменением шума.

Так в этой программе выпадение случайных чисел происходит от -1 до 1.

График   А1/А2   А1   А2 Проценное соотношение шума
А 8/5 Б В
А 8/5 Б В
А 8/5 Б В
А 8/5 Б В
А 8/5 Б В

А Б В

1

2

3

4

5

 

Таблица нахождения сигналов

Синусоидальный Functions (функции), MathematicsElementary&Special FunctionsTrigonometric Functions
Меандр Functions(функции), MathematicsElementary&SpecialFunctions→Gating Functions→ Square Functions.
Треугольный Functions(функции), SignalProcessingSignal GenerationsSignal Generator by Duration ( наконтактетипсигналавыбратьTriangle)
Прямоугольный Functions(функции), Signal ProcessingSignal GenerationsSignal Generator by Duration ( наконтактетипсигналавыбратьSquare)
Пилообразный Functions(функции), Signal ProcessingSignal GenerationsSignal Generator by Duration ( на контакте тип сигнала выбрать Sawtooth)

1.16. Варианты заданий:

Сигнал 1 Сигнал 2
Треугольный*
Треугольный*
Треугольный*
Треугольный*
Треугольный*
Треугольный*
Треугольный* Треугольный*
Треугольный*
Треугольный*

*Треугольный сигнал описывается системой:

,

где ,

Конечный сигнал представляет собой зашумленную сумму двух данных сигналов.

Диапазон шума


Содержание отчета

Отчет должен содержать в себе следующие пункты:

· Цель работы

· Задание и номер варианта

· Математическая формула конечного зашумленного сигнала

· Изображения данных сигналов и получившегося

· Скриншоты рабочих полей LabView с рабочим алгоритмом программы

· Краткое описание действий

· Выводы по работе

· Ответы на контрольные вопросы


1.18. Контрольные вопросы

1) Какими бывают сигналы (виды и определения)?

2) Формы сигналов и их различия.

3) Где используются "меандры"?

4) Что такое коэффициент заполнения. Что такое "скважность"?

5) К каким из двух типов сигналов относятся: синусоидальный, пилообразный и триггер сигналы?

6) Зарисовать график синусоидального сигнала, обозначить на нем все характеристики.

7) Что будет с периодом, если уменьшать частоту? Связь частоты и периода.

8) Когда пилообразный сигнал имеет зеркальное отражение самого себя?

9) Единственная реализация случайного процесса и в чем она заключается.

10) Возможна ли смена диапазона в случайном процессе? Если да, то как?


Список используемой литературы:

1. http://gos-y.narod.ru/htm/17.htm

2. http://life-prog.ru/1_32612_zakoni-raspredeleniya-sluchaynih-velichin.html

3. http://www.mir-koda.ru/full_leson_cpp.php?id=28

4. Методический материал «Сигналы и линейные системы»

 



2016-09-16 2434 Обсуждений (0)
Пример лабораторной работы в Labview 4.67 из 5.00 3 оценки









Обсуждение в статье: Пример лабораторной работы в Labview

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (2434)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)