Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4-16_занятия_LV8_red+.doc
Скачиваний:
38
Добавлен:
13.11.2019
Размер:
803.84 Кб
Скачать

Занятие 8. Дифференцирование и интегрирование в labview

Цель работы: построение виртуального прибора, реализующего наиболее часто используемые операции с массивами: численное дифференцирование и численное интегрирование. В качестве примера используется функция Гаусса

.

8.1. Численное дифференцирование

  1. Получите массив значений функции Гаусса в заданном интервале (4) с помощью узлов блок-диаграммы Formula Node и For Loop. Для этого удобно воспользоваться виртуальным прибором, созданным на занятии 7.

  2. Н а блок-диаграмме расположите стандартный виртуальный прибор Derivative x(t).vi (Производная) из палитры Mathematics >> Integ&Diff. Получите терминалы Derivative_x(t).vi, включив окно помощи (Help >> Show Context Help). На вход этого VI подается одномерный массив (Х).

Численное дифференцирование осуществляется по известной формуле центральной разности

,

где dt – шаг дифференцирования; i = 0, …, n – 1. На выходе VI формируется массив значений производной. Обычно при дифференцировании с использованием формулы центральной разности значения производных в крайних точках диапазона не определены. В LabVIEW существует возможность получить значения и на границах. Для этого используются “запредельные” значения (initial condition x–1 и final condition xn). По умолчанию они равны 0, но могут быть заданы иными для минимизации ошибок и обеспечения гладкости производной на краях. Таким образом, выходной массив производных имеет длину, равную длине входного массива Х.

  1. Шаг дифференцирования dt задайте равным шагу, использованному при расчете функции Гаусса. Неточное значение шага приведет к потере количественной информации (фактически, к умножению значений производной на константу).

  2. Используя элемент XY Graph, выведите на переднюю панель два графика: исходную рассчитанную функцию и результаты дифференцирования.

  3. Запустите VI. На графиках включите Cursor Legend и создайте курсор, привязанный к графику производной. С его помощью зафиксируйте положения экстремумов производной функции Гаусса.

  4. Сохраните виртуальный прибор.

8.2. Численное интегрирование

Схема численного интегрирования в LabVIEW основана на формуле Симпсона для трех узлов

, (8.1)

где i = 0, 1, …, n – 1; n – количество элементов массива. Шаг интегрирования dt должен быть выбран равным шагу, используемому при расчете подынтегральной функции.

  1. Введите в блок-схему стандартный виртуальный прибор Integral x(t).vi из палитры Mathematics >> Integ&Diff. Изучите его терминалы. Входными значениями VI Integral x(t) являются элементы одномерного массива X. В результате интегрирования в LabVIEW получается также одномерный массив (!) одинаковой длины с X, причем собственно определенным интегралом от входного массива в заданных пределах является последний элемент выходного массива VI Integral x(t). Терминалы initial condition x–1 и final condition xn имеют тот же смысл, что и в Derivative_x(t).vi. Они задают “запредельные” значения входного массива Х для возможности использования формулы (8.1) на краях расчетного диапазона. Обычно они не подсоединяются, и по умолчанию х–1 = хn = 0. При необходимости их значения могут быть изменены для уменьшения ошибки интегрирования, особенно при малом количестве точек в массиве Х.

  2. Подсоедините необходимые терминалы к Integral_x(t).vi. Добавьте на лицевую панель третий дисплей и выведите на него результат интегрирования. XY Graph не пригоден для вывода результатов интегрирования (почему?), поэтому используйте в данном случае Waveform Graph.

  3. Поскольку на выходе Integral_x(t).vi появляется массив монотонно возрастающих чисел, то для получения значения самого интеграла удобно применить функцию Array Max & Min (поиск максимума и минимума в массиве) из палитры Programming >> Array.

  4. Как проинтегрировать функцию в заданных пределах с помощью виртуального прибора Integral_x(t).vi?

Integral_x(t).vi работает со всем входящим в него массивом, как с единым целым. Поэтому следует обеспечить ввод в Integral_x(t).vi требуемого подмассива из всей совокупности значений подынтегральной функции. Позиционируйте курсор точно на проводнике, соответствующем входящему в интеграл массиву Х. Далее щелкните правой кнопкой и выберите I nsert >> Array Palette >> Array Subset. Этот инструмент выделяет подмассив (sub-array) заданной длины (length) из входящего массива, начиная с заданного индекса (index(0)). Восстановите нарушенные соединения. Значения index(0) и length можно задавать с лицевой панели.

  1. Получите диапазоны интегрирования автоматически (по аналогии с 7.4), используя Property Node для XY Graph, содержащего график производ-ной. Чтобы получить индексы считанных курсором с дисплея элементов массива, используйте свойство Cursor >> Cursor Index с включенным Lock to plot). Тогда длина подмассива length будет равна разности индексов элементов, выбранных двумя разными курсорами.

  2. Сохраните разработанный VI.

  3. Получите значение интеграла от функции Гаусса в диапазоне между экстремумами производной, а также в диапазонах 3; 2.

  4. Составьте отчет по лабораторной работе. Когда при численном интегрировании с помощью Integral_x(t).vi использование функции Array Max & Min некорректно?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]