Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОЕКТИРОВАНИЕ ВИРТУАЛЬНЫХ ИЗМЕРИТЕЛЬНЫХ ПРИБОРОВ В СРЕДЕ LabVIEW.pdf
Скачиваний:
265
Добавлен:
26.03.2015
Размер:
2.01 Mб
Скачать

13.Сохраните ВИ в файле на диске (команда File/Save As…). Файл с разработанным ВИ сохраните в личном каталоге, который был создан на предыдущих работах.

14.В соответствии с вариантами установите значения в органах управления и запустите разработанную программу на выполнение с помощью команды Run.

Варианты заданий

Вариант

Объем выборки

Порядок полинома

Надпись на приборе

1

300

 

6

 

A, B

2

500

 

5

 

A, C

3

400

 

10

 

A, D

4

300

 

3

 

A, E

5

600

 

6

 

A, F

6

800

 

5

 

A, G

7

1100

 

7

 

A, B, C

8

500

 

5

 

A, C, D

9

400

 

6

 

A, D, F

10

1000

 

8

 

A, E, G

11

700

 

10

 

A, F, G

12

500

 

8

 

A, B, D

13

600

 

7

 

A, C, E

14

400

 

9

 

A, D, F

15

800

 

7

 

A, E, F

16

500

 

9

 

A, B, E

17

600

 

10

 

A, C, F

18

700

 

7

 

A, B, D

19

500

 

5

 

A, C, D, F

20

700

 

6

 

A, F, G

 

 

Расшифровка надписей на приборе

 

 

A

 

Медианный фильтр

 

 

 

 

B

<Полное название вуза>

 

 

 

 

C

<Сокращенное название вуза>

 

 

 

D

 

<Факультет>

 

 

 

 

E

 

<Кафедра>

 

 

 

 

F

 

<Номер группы>

 

 

 

 

G

<Инициалы студента>

 

 

РАБОТА 9. АНАЛИЗАТОР ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ

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

Функции:

Linear Fit.vi – функция линейной регрессии.

73

Exponential Fit.vi – функция экспоненциальной регрессии.

General Polynomial Fit.vi – функция полиномиальной регрессии.

1D Linear Evaluation.vi – генерация одномерного массива на основе линейной функции.

1D Polynomial Evaluation.vi – генерация одномерного массива на основе полиномиальной функции.

Ramp Pattern.vi – генерация равномерно возрастающей последовательности.

Восстановление функциональной зависимости по результатам эксперимента – одна из задач, решение которой возможно средствами

LabVIEW. Вкладка Curve Fitting подменю Mathematics меню Functions

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

В LabVIEW реализованы линейная, полиномиальная и экспоненциальная регрессионные модели:

линейная регрессионная модель:

Y = m X +b ,

где m и b – коэффициенты регрессионной модели;

экспоненциальная регрессионная модель:

Y = a exp(t X ) ,

где a и t – амплитуда и коэффициент затухания (коэффициенты модели);

полиномиальная регрессионная модель:

m

Y = a j X j , j=0

где m – порядок полинома (order), a j – коэффициенты модели.

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

1 n1

mse = n i=0(Fi Yi )2 ,

74

где F =Y (X ) – значение функции по регрессионной модели; Yi – экспе-

риментально измеренное значение функции; n – число точек экспериментальной выборки (число опытов).

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

Создание передней панели.

1.Создайте новый ВИ – команда New VI в начальном диалоге LabVIEW.

2.Разместите один из логических выключателей из вкладки Boolean меню Controls для программирования возможности отключения прибора. Задайте надписи «Вкл» и «Выкл» к обоим положениям выключателя. Для отображения активности прибора разместите логический индикатор.

3.Для отображения двух сигналов разместите на передней панели

графический индикатор XY Graph из вкладки Graph меню Controls. Настройте его на отображение двух сигналов разными цветами, причем первый из них будет отображаться в виде точек, а второй – сплошной линией. Наведите курсор на правый верхний угол прямоугольника с надписью Plot 0. Нажав и удерживая левую кнопку мыши, растяните этот прямоугольник в вертикальном направлении, пока не появится надпись Plot 1. Теперь вы можете установить независимые параметры отображения (цвет, тип и толщина линии) для разных сигналов. Задать названия для отдельных сигналов можно с помощью инструмента Edit Text . После выбора этого инструмента с панели инструментов наведите его на название по умолчанию (Plot 0, Plot 1, и т. д.) и щелкните левой кнопкой мыши. Задайте, например, такиенадписи: «Входныеданные» и«Найденная зависимость».

4. Для переключения внутреннего генератора и соответствующего ему вида регрессионной функции на передней панели анализатора разместите

цифровой переключатель Dial из вкладки Numeric меню Controls. Надпись для этого элемента может быть «Вид функции модели». Задайте для него один из целочисленных типов данных с помощью команды Representation контекстного меню. Воспользуйтесь инструментом Edit Text и определите диапазон значений [0…2], соответствующий числу функций в генераторе. Воспользуйтесь вкладкой контекстного меню органа управ-

75

ления Scale/Style и определите его разметку таким образом, чтобы были видны маркеры целых значений без указания конкретных числовых значений. Воспользуйтесь инструментом Edit Text и задайте текстовые надписи рядом с маркерами. Надписи могут быть такими: «Линейный», «Экспоненциальный», «Полиномиальный».

5.Разместите на панели ползунковый орган управления из вкладки Numeric меню Controls для переключения порядка полинома в соответствующей модели. Задайте название для этого элемента, например «Порядок полинома». При помощи контекстного меню установите целочисленный тип ползункового органа управления.

6.Для установки числа точек в экспериментальной выборке размести-

те числовой орган управления Knob из вкладки Numeric меню Controls и установите диапазон его значений равный [0…500], а тип значений сделайте целочисленным. Надпись к элементу может быть, например, «Объем выборки».

7. Для изменения уровня аддитивной шумовой составляющей в выходном сигнале генератора расположите цифровой орган управления Knob

из вкладки Numeric меню Controls. Задайте для него надпись, например «Уровень шума».

8.Для наблюдения за значением среднеквадратической ошибки анализатора разместите на передней панели цифровой индикатор. Задайте для него надпись, например «СКО».

9.Разместите на лицевой панели подходящие декоративные элементы,

атакже элементы с указанием варианта, фамилии разработчика и группы. Примерный вид передней панели приведен на рис. 9.1.

10.Переключитесь в окно диаграммы командой Window/Show Diagram.

Создание диаграммы.

1.После переключения в окно диаграммы на ней уже должны находиться восемь элементов: четыре цифровых и один логический орган управления, а также цифровой, логический и графический индикаторы.

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

3.Создание диаграммы для разрабатываемого ВИ можно условно разделить на два этапа: создание внутренних генераторов (на выходе которых должны появляться смоделированные экспериментальные данные) и программирование анализаторов, работающих по определенным моделям регрессионного анализа.

76

Рис. 9.1. Примерный вид передней панели разрабатываемого виртуального инструмента

4. Для синхронизации генераторов, анализаторов и графических инди-

каторов поместите на схеме элемент Ramp Pattern.vi из вкладки Signal Processing подменю Signal Generation меню Functions, который будет генерировать массив значений целых чисел равномерно возрастающей последовательности [0…n]. К входу samples (размер массива на выходе функции) подключите значение на органе управления «Объем выборки».

5.Для возможности переключения внутреннего генератора разместите на диаграмме структуру Case из вкладки Structure меню Functions. К селекторному входу структуры подключите орган управления «Вид функции модели». После этого в структуре будет только два кадра. Воспользуйтесь командой Add Case контекстного меню структуры Case добавьте еще один кадр структуры.

6.В кадре 0 структуры Case, соответствующего линейному виду функции моделирования, разместите функцию 1D Linear Evaluation.vi

из вкладки Mathematics подменю Array Operations меню Functions,

приведенной на рис. 9.2. Для получения коэффициентов на входах scale и offset этой функции воспользуйтесь функцией генерации случайных чисел

Random Number 0-1 из вкладки Numeric меню Functions. Вход X функции 1D Linear Evaluation.vi соедините с выходом функции Ramp Pattern.vi.

77

Рис. 9.2. Функции работы с массивами

7. Разместите функцию Exponential

из вкладки Logarithmic подменю Numeric

меню Functions в кадре 1 структуры Case. Разместите функцию умножения Multiply из вкладки Numeric меню Functions, на один вход которой подключите константу с любым отрицательным значением, а на второй вход подайте случайные значения в диапазоне от 0 до 1 от дополнительно установленной функции Random Number 0-1. Разместите еще одну функцию умножения, на один из входов которой нужно подключить выход первой функции умножения. Второй вход соедините с выходом функции Ramp Pattern.vi. Правее функции Exponential разместите функцию сложения Add из вкладки Numeric меню Functions. Вход функции Exponential соедините с выходом функции

Ramp Pattern.vi. Выход функции Exponential

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

функции Multiply.

8. В кадре 2 структуры Case разместите функцию 1D Polynomial

Evaluation.vi из вкладки Mathematics подменю Array Operations меню

Functions (см. рис. 9.2). Вход X этой функции соедините с выходом функции Ramp Pattern.vi. Значения коэффициентов полинома на выходе этой функции будем получать по случайному закону распределения, в частности можно воспользоваться функцией генерации значений для равномер-

ного распределения Uniform White Noise.vi из вкладки Signal Generation подменю Signal Processing меню Functions. Число коэффициентов полинома, а соответственно и число значений на выходе функции Uniform White Noise.vi, должно быть на единицу больше порядка полинома. Для получения числа необходимых коэффициентов полинома воспользуйтесь значением органа управления «Порядок полинома» и функцией арифметического сложения Add (вкладка Numeric палитра Functions). Полученное значение с выхода функции Add подайте на вход samples функции Uniform White Noise.vi. Выход этой функции соедините с входом Coefficients: a

функции 1D Polynomial Evaluation.vi.

78

9. Для моделирования натурного эксперимента на выходные данные генераторов нужно наложить шум, например, с равномерным распределением. Для этого разместите на диаграмме вне структуры Case функцию сложения Add, а также функцию Uniform White Noise.vi. Соедините один из входов функции сложения с выходом функции генерации равномерно распределенного шума. Второй вход функции сложения соедините с выходами функций генерации экспериментальных данных во всех кадрах структуры Case. В кадре структуры Case под номером 1 выходом функции генерации следует считать выход функции Add. Для управления амплитудой шумовой составляющей соедините вход amplitude функции Uniform White Noise.vi, расположенной вне структуры Case, с органом управления «Уровень шума». Вход samples этой же функции подключите к элементу объем выборки.

10.В разрабатываемом ВИ каждому виду функции генератора экспериментальных данных будет соответствовать определенная модель регрессионного анализатора. Для программирования этой возможности разместите в правой части диаграммы вторую структуру Case. Селекторный вход этой структуры соедините с органом управления «Вид функции модели». Добавьте третий кадр структуры с помощью команды Add Case контекстного меню элемента структуры.

11.В кадре 0 структуры разместите функцию Linear Fit.vi из вкладки Curve Fitting подменю Mathematics палитра Functions, приведен-

ной на рис. 9.3. В кадрах 1 и 2 структуры Case разместите функции Ex-

ponential Fit.vi

 

 

и General Poly-

 

 

 

 

nomial Fit.vi

 

 

соответственно.

 

Все эти функции имеют аналогичные

 

входы и выходы, которые необходи-

 

мо подключить аналогичным обра-

 

зом. К входу X всех функций анализа

 

подсоедините выход функции Ramp

 

Pattern.vi. На вход Y подайте смоде-

 

лированные экспериментальные дан-

 

ные, образованные на выходе

 

элемента Add. Вход polynomial order

 

в кадре 2 структуры соедините с ор-

 

ганом управления «Порядок поли-

 

нома».

 

 

 

Рис. 9.3. Регрессионные функции

12.Выход mse всех функций рег-

79

рессивного анализа подключите к цифровому индикатору «СКО». 13.Для отображения двух графиков на графическом индикаторе XY

Graph необходимо подать на его вход массив кластеров. Каждый кластер, в свою очередь, состоит из двух массивов, первый из которых представляет значения по оси X, а второй – соответствующие значения по оси Y. Для формирования кластеров разместите на диаграмме две функции Bundle

из вкладки Clusters меню Functions. Число входов этих функций установите равным 2. На верхние входы обеих функций Bundle подключите массив, который образуется на выходе функции Ramp Pattern. На нижний вход первой из функций Bundle подайте смоделированные экспериментальные данные. Нижний вход второй функции Bundle соедините с выходами функций регрессивного анализа.

14.Для объединения полученных кластеров в массив разместите функ-

цию Build Array (сформировать массив) из вкладки Arrays меню Functions. Установите число входов этой функции равное 2. На верхний вход подключите кластер, представляющий график для смоделированных экспериментальных данных, а ко второму входу подключите кластер, представляющий график на выходе функции регрессионного анализа. Соедините выход функции Build Array с графическим индикатором.

15.В цикле While разместите функцию Wait Until Next ms Multiply

из вкладки Time & Dialog меню Functions для временной задержки, позволяющей наблюдать промежуточные результаты работы анализатора. Воспользуйтесь цифровой константой и определите задержку не менее 0,5 с. Примерныйвиддиаграммыразрабатываемого ВИпредставленнарис. 9.4.

Рис. 9.4. Примерный вид диаграммы разрабатываемого виртуального инструмента

80