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

Циклы

1 Цель работы

Изучение циклов While Loop и For Loop, получение навыков доступа к данным предыдущих итераций в циклах.

2 Порядок выполнения работы

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

2.1.1 Сформируйте цикл While. Поместите внутрь подпрограмму Digital Thermometer. vi (из C:\Program Files\National Instruments\LabVIEW 7.1\activity\), функцию сравнения «больше либо равно» (Greater or equal?) Из палитры All Functions->Comparison.

2.1.2 Создайте на передней панели управляющий элемент «Numeric»

2.1.3 Соедините элементы на блок-диаграмме так, чтобы цикл останавливался, при превышении значения температуры задаваемого с передней панели порога.

2.1.4 Создайте два индикатора типа «Numeric» на передней панели. Соедините один из них непосредственно с терминалом счетчика итераций цикла, другой поместите за пределами цикла и соедините так же с терминалом счетчика итераций цикла.

2.1.5 Исследуйте работу прибора.

2.2 Создайте прибор, вычисляющий среднее значение случайной величины.

2.2.1 Сформируйте цикл While. Поместите внутрь цикла функцию генерации случайной величины и функцию ожидания (Wait).

2.2.2 Создайте в цикле регистр сдвига, выбрав пункт Add Shift Register в контекстном меню на рамке цикла. Добавьте 4 регистра, растянув входной терминал регистра сдвига мышью.

2.2.3 Создайте на передней панели 2 численных индикатора и кнопку. Убедитесь, что их терминалы находятся в теле цикла. Соедините терминал кнопки с терминалом завершения цикла. Один из индикаторов соедините с функцией случайного числа, а на второй выведите среднее текущего и предыдущих 5 значений случайной величины (методику вычисления реализуйте по своему усмотрению). На вход функции ожидания подайте константное значение величиной 500.

НЕ нашли? Не то? Что вы ищете?

2.2.4 Исследуйте работу прибора. Попробуйте инициализировать регистры сдвига различными значениями. Как при этом изменится функционирование прибора?

2.2.5 Попробуйте заменить регистры сдвига узлами обратной связи. Что необходимо сделать, чтобы можно было осуществить усреднение случайной величины?

2.3 Создайте прибор, который измеряет температуру раз в секунду в течение минуты.

2.3.1 Сформируйте цикл типа For. Задайте количество выполняемых итераций в 60.

2.3.2 Поместите внутрь функцию ожидания Wait и подайте на её вход значение 1000.

2.3.3 Разместите в теле цикла прибор Digital Thermometer. vi (из C:\Program Files\National Instruments\LabVIEW 7.1\activity\). Выведите его выход на индикатор передней панели вида Thermometer.

2.3.4 Исследуйте работу прибора. Замените константное значение на входе функции Wait значением с управляющего элемента, так же поступите с количеством выполняемых итераций.

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

3.1 К какому из двух видов циклов с условием относится цикл While?

3.2 Как убедиться в конкретной разновидности цикла While?

3.3 Для чего служит регистр сдвига?

3.4 Как от цикла While добиться функционирования, подобного циклу For?

3.5 Какое отличие в поведении имеют инициализированный и неинициализированный регистры сдвига?

3.6 В чем отличие узла обратной связи от регистра сдвига?

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

Массивы

1 Цель работы

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

2 Порядок выполнения работы

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

2.1.1 Сформируйте цикл For, который будет выполняться 100 раз. Поместите внутрь цикла функцию Random Number, и выведите её выход на границу цикла. Убедитесь, что этот выходной туннель осуществляет индексирование.

2.1.2 Выведите выходной туннель на индикатор (для этого на передней панели разместите оболочку массива, внутрь которой поместите численный индикатор), кроме того, подайте его на вход функции Array Max & Min из палитры All Functions->Array. Все выводы функции максимума и минимума в массиве (значения и индексы максимального и минимального значения) подключите к индикаторам.

2.1.3 Выполните программу. Пронаблюдайте работу при нескольких запусках. Попробуйте найти на индикаторе массива индицируемые минимальный и максимальный элементы

2.2 Создайте прибор, который выполняет определенную операцию над каждым элементом массива.

2.2.1 Сначала сформируйте массив значений с помощью автоиндексации в цикле For. Затем выполните операцию над каждым элементом 3-я разными способами: с использованием автоиндексации на входе массива; с использованием регистра сдвига; с использованием полиморфизма операций. Варианты заданий указаны ниже.

2.2.2 Варианты заданий выбираются по номеру рабочей станции:

1) значения случайной величины, операция умножения на число

2) значения синуса, операция вычитания из числа

3) значения экспоненты, операция деления на число

4) значения логарифма, операция сложения с числом

5) значения прямой 3х+5, операция возведения в квадрат

6) значения косинуса, операция умножения на число

7) значения прямой 5х+2, операция извлечения квадратного корня

8) значения кривой х^2 + 0.5х-10, значения вычитания числа

9) значения случайной величины в пределах 0…100, операция деления на число

10) значения синуса, операция обратного синуса.

2.2.3 Изучите работу прибора.

2.3 Создайте прибор, демонстрирующий «бегущий огонек».

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

2.3.2 Разместите на блок-диаграмме функции инициализации массива, замены значения элемента в массиве и поворота массива так, как представлено на рисунке.

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

2.3.4 Сделайте так, чтобы огонек бежал в другую сторону.

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

3.1 С какого номера начинается индексация массива?

3.2 Назовите 3 способа создания массива.

3.3 Как можно реализовать «бегущий огонек» без применения массивов?

3.4 Какие из встроенных функций LabVIEW обладают полиморфизмом применительно к массивам, а какие – нет?

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

Графики

1 Цель работы

Ознакомление с видами графиков Chart, Graph и XY Graph, получение навыков визуализации данных на графиках.

2 Порядок выполнения работы

2.1 Создайте прибор, демонстрирующий бегущее среднее температуры на графике вида Chart.

2.1.1 Используйте в качестве основы прибор, созданный ранее в п.2 лабораторной работы №3 для вычисления среднего случайной величины. Замените функцию Random Number на прибор Digital Thermometer. vi (из C:\Program Files\National Instruments\LabVIEW 7.1\activity\).

2.1.2 На передней панели поместите график Chart. Соедините его терминал на блок-диаграмме с выходом прибора температуры. Запустите программу и исследуйте её работу.

2.1.3 Поместите теперь в цикл функцию Bundle из палитры All Functions->Cluster. Подайте её выход на график Chart, а на входы – значение температуры и среднее значение. Проверьте работу программы.

2.1.4 Как теперь добиться отображения третьего графика – максимального значения температуры? Используйте для определения максимального значения функцию Max & Min из палитры All Functions->Comparison.

2.1.5 Поэкспериментируйте с внешним отображением графиков – видом, типом линий, точек, масштабированием по осям.

2.2 Сконструируйте прибор, демонстрирующий графики на индикаторе вида Graph.

2.2.1 Создайте на блок-диаграмме цикл For с количеством итераций 100, и поместите внутрь прибор Generate Waveform. vi (из C:\Program Files\National Instruments\LabVIEW 7.1\activity\) и функцию синуса. Для синуса пересчитайте входную величину из терминала счетчика итераций цикла по формуле: i*p/50. Выведите выходы синуса и Generate Waveform. vi на границу цикла и убедитесь, что выходные туннели обеспечивают автоиндексацию.

2.2.2 Умножьте каждый элемент массива значений синуса на величину 0.5.

2.2.3 Заведите оба массива на функцию Build Array палитры All Functions->Array, а с этой функции – на индикатор Waveform Graph.

2.2.4 Как изменятся работа программы и отображение данных на графике в зависимости от включения/выключения опции Concatenate Inputs функции Build Array?

2.2.5 При включенной опции Concatenate Inputs функции Build Array, добейтесь получения отдельных графиков Waveform и синуса, использовав функции Array Subset или Split 1D Array палитры All Functions->Array. Как при этом добиться независимости работы программы от размера входного массива?

2.3 Создайте прибор, демонстрирующий бегущее среднее температуры на графике вида Graph.

2.3.1 Используйте как основу прибор, разработанный в первом пункте данной лабораторной работы. Удалите график вида Chart, и поместите на переднюю панель график вида Graph.

2.3.2 Используйте регистры сдвига и функцию Build Array, для того, чтобы добиться поведения графика, аналогичного графику вида Chart – обновляющийся на каждой итерации график температуры, с добавлением новых точек справа.

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

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

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

3.1 Чем, с точки зрения программы, отличается график вида Chart, от вида Graph?

3.2 Каким образом можно создать мультиплотный (multiplot) график вида Chart и вида Graph?

3.3 Как можно сымитировать поведение Waveform Graph на графике вида Chart?

3.4 Как можно сымитировать поведение Waveform Graph на графике вида XY Graph?

3.5 Какие три режима обновления данных на экране графика вида Chart существуют и чем они отличаются друг от друга?