Дискретизация непрерывных процессов в среде LabVIEW

Платформа для выполнения программ, созданных на графическом языке программирования "G" фирмы National Instruments. Дискретизация непрерывных процессов. Восстановление непрерывного процесса по дискретным отсчетам. Построение ВП "Дискретизация процессов".

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 19.03.2011
Размер файла 278,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Дискретизация непрерывных процессов

2. Восстановление непрерывного процесса по дискретным отсчетам

3. Ошибки дискретизации

4. Построение ВП “Дискретизация процессов”

Заключение

Список литературы

Введение

LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) - это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments (США). Первая версия LabVIEW была выпущена в 1986 году для Apple Macintosh, в настоящее существуют версии для UNIX, GNU/Linux, Mac OS и пр., а наиболее развитыми и популярными являются версии для Microsoft Windows.

LabVIEW используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами. Идеологически LabVIEW очень близка к SCADA-системам, но в отличие от них в большей степени ориентирована на решение задач не столько в области АСУ ТП, сколько в области АСНИ.

1. Дискретизация непрерывных процессов

При замене непрерывного процесса цифровым возникают ошибки из-за квантования по уровню (шумы квантования) и дискретизации по времени (ошибки восстановления непрерывного процесса по его дискретным отсчетам). Шум квантования считается равномерно распределенным случайным процессом с дисперсией h2/12, где h - величина шага квантования. При 16-разрядном двоичном представлении числа шаг квантования равен примерно одной 65-тысячной этого числа. Поэтому шумами квантования можно пренебречь. Дискретизация заключается в замене непрерывного процесса его отсчетами, взятыми через некоторые интервалы времени Дt, не обязательно одинаковые. Далее будем рассматривать только эквидистантную дискретизацию, когда интервал дискретизации Дt постоянен.

Восстановить непрерывный процесс по его дискретным отсчетам можно без ошибки, согласно теореме Котельникова, если спектр этого процесса S(f) ограничен частотой fгр (S(f) = 0 при f > fгр) и частота дискретизации, fд = =1/Дt, больше удвоенной граничной частоты (fд 2fгр). При этом восстанавливающий фильтр должен иметь прямоугольную АЧХ и ФЧХ, равную нулю. Импульсная характеристика такого фильтра g(t) = Sin(рfдt)/(рfдt). Так как импульсная характеристика начинается при t = - ?, то такой фильтр физически нереализуем. Можно использовать фильтры высокого порядка (например, Баттерворта, Чебышева и др.), АЧХ которых приближается к прямоугольной. Но повышение порядка фильтра приводит к увеличению крутизны ФЧХ, и следовательно, увеличению задержки выходного сигнала фильтра относительно входного. Таким образом, чем ближе будет форма восстановленного сигнала к исходной непрерывной, тем больше он будет задержан относительно исходного. Теоретически время задержки при идеальном восстановлении равно бесконечности.

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

2. Восстановление непрерывного процесса по дискретным отсчетам

В основе восстановления непрерывного процесса x(t) по его отсчетам x(iДt) лежит теория аппроксимации. Аппроксимация - это замена одного математического объекта другим, в том или ином смысле близким к исходному. Для аппроксимации функций используются ряды, из которых наиболее известными являются ряд Тейлора (для экстраполяции) и ряд Лагранжа (для интерполяции).

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

Экстраполяция - определение значений процесса за пределами интервала ДT по известным значениям этого процесса, а также его производных, на границах интервала ДT.

Замена непрерывного процесса ступенчатым Простейшей аппроксимацией является ступенчатая. При ступенчатой интерполяции восстановленный процесс xв(t) на интервале iДt - Дt/2 < t < iДt + Дt/2 считается равным значению отсчета процесса в момент времени t = iДt (рис. 1 а). Таким образом, в интервале между соседними отсчетами процесс изменяется скачком в середине интервала.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

а) б)

Рис. 1

При ступенчатой экстраполяции (рис. 1 б) восстановленный процесс принимает значение отсчета в момент времени t = iДt на всю длину последующего интервала.

Размещено на http://www.allbest.ru/

Ступенчатая интерполяция физически не реализуема, так как в середине интервала процесс должен принять значение, которое в этот момент еще не известно, а будет известно позже, в следующий момент дискретизации. Ступенчатая экстраполяция физически реализуема, так как для восстановления процесса требуется знание только предыдущего отсчета. Схему, осуществляющую ступенчатую экстраполяцию называют фиксатором нулевого порядка. Такое преобразование производит ЦАП. Импульсная характеристика фиксатора нулевого порядка показана на рис 2. Формирование ступенчатого процесса можно представить как реакцию фильтра с такой импульсной характеристикой на последовательность д-импульсов, площадь которых равна x(iДt).

Замена непрерывного процесса кусочно-линейным Замена непрерывного процесса кусочно-линейным осуществляется в результате линейной интерполяции или экстраполяции. При линейной интерполяции (рис. 3 а) восстановленный процесс изменяется внутри интервала дискретизации линейно, принимая на границах этого интервала значения отсчетов исходного процесса. При линейной экстраполяции (рис. 3 б) восстановленный процесс тоже изменяется линейно внутри интервала дискретизации, но эта линия строится как продолжение линии, построенной по отсчетам процесса на границах предыдущего интервала дискретизации.

а)

б)

Рис. 3.

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

Линейную интерполяцию можно реализовать, если допустить задержку результата интерполяции на один интервал дискретизации (рис. 4). Тогда становятся известными координаты конца отрезка прямой, и с этого момента можно строить интерполирующую прямую.

Устройство, реализующее такую интерполяцию, называется фиксатором первого порядка. Его импульсная характеристика показана на рис 5.

3. Ошибки дискретизации

Как видно из приведенных выше рисунков (рис. 1 б и рис. 4), исходный x(t) и восстановленный xв(t) процессы отличаются друг от друга. Различие между ними называется ошибкой дискретизации. Эту ошибку можно определить по-разному. На рис. 6 показаны два подхода к определению ошибки.

Размещено на http://www.allbest.ru/

В системах передачи информации, где несущественна задержка, вносимая устройством восстановления сигнала, пользуются ошибкой без учета задержки. Она равна разности исходного задержанного процесса и восстановленного процесса, причем задержка выбирается такой (tопт), чтобы ошибка была минимальной. Эта ошибка является ошибкой интерполяции:

динт(t) = x(t - tопт) - xв(t).

программа дискретизация процесс

В системах с обратной связью задержка восстановленного сигнала нежелательна. Она может привести не только к увеличению ошибок моделирования, но и к потере устойчивости модели. В этом случае ошибка определяется как:

дполн(t) = x(t) - xв(t)

и называется полной ошибкой. На рис. 7 приведены осциллограммы полной ошибки и ошибки интерполяции при восстановлении процесса фиксаторами нулевого и первого порядков, когда исходный процесс представляет собой отрезок синусоиды длительностью в один период, а отношение периода синусоиды к интервалу дискретизации равно 10.

а) Полная ошибка для фиксатора нулевого порядка

б) Ошибка интерполяции для фиксатора нулевого порядка

в) Полная ошибка для фиксатора первого порядка

б) Ошибка интерполяции для фиксатора первого порядка

Рис 7

Так как ошибки зависят от времени, то для их числовой оценки используется среднеквадратическая ошибка, усредненная за время Т, в течение которого измеряется ошибка:

СКО = (1/Т)?д2(t)dt. ( 1)

Сравнивая графики, приведенные на рис. 7, видим, что полная ошибка для фиксатора нулевого порядка меньше, чем для фиксатора первого порядка. Это связано с тем, что для фиксатора нулевого порядка восстановленный процесс задержан относительно исходного на половину интервала дискретизации, а для фиксатора первого порядка - на интервал дискретизации. Ошибка интерполяции, наоборот, меньше для фиксатора первого порядка.

4. Построение ВП “Дискретизация процессов”

Блок-схема ВП состоит из четырех частей: генератора исходного процесса, формирователя массивов (исходного, дискретного и двух восстановленных), измерителя ошибок и индикаторной части.

В качестве генератора непрерывного процесса используется экспресс-ВП Simulate Signal, знакомый по предыдущей лабораторной работе, который ставится в режим генерирования синусоиды длительностью в один период. Чтобы генерируемый процесс можно было считать близким к непрерывному примем, что за период синусоиды генерируется Nс = 1000 отсчетов.

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

Рис. 8

Чтобы значения задержанного массива были равными нулю до начала отрезка синусоиды необходимо в исходном массиве непрерывного процесса после отрезка синусоиды ввести нулевые значения элементов массива (рис. 8). Чтобы обеспечить максимальный сдвиг исходного массива на два интервала дискретизации, примем количество нулевых элементов равным количеству отсчетов за два интервала дискретизации. Приведенная на рис. 8 осциллограмма массива содержит 1000 элементов массива синусоиды и 400 нулевых элементов.

Генерирование всех массивов (исходного, дискретного и двух восстановленных) производится в структуре For Loop. Число итераций N, как уже говорилось, должно быть равно:

N = Nc + 2Nд.

Число Nс элементов массива, генерируемого экспресс-ВП Simulate Signal, определяется с помощью функции Array Size (Размер массива). Эта функция возвращает число элементов массива. Значение Nд (количество отсчетов на интервал дискретизации) определится, исходя из принятого значения отношения частоты дискретизации к частоте синусоидального процесса:

k = fд/fc = Nc/Nд.

Откуда

Nд = Nc/k,

и

N = Nc + 2Nс/k. ( 2)

Блок-схема программы вычисления N по выражению ( 2) показана на рис. 9.

Исходный массив формируется из выходного процесса зкспресс-ВП Simulate Signal с помощью функции Index Array (Индексирование массива), которая возвращает элемент массива с заданным индексом (см. рис. 10). Если число i, подаваемое на вход index, больше максимального индекса массива, то по умолчанию возвращается 0, что соответствует требуемой форме массива (рис. 8).

Рис. 9

Рис. 10

Дискретный процесс формируется из исходного массива выборкой тех значений, индекс которых кратен количеству отсчетов Nд. Для определения этих индексов используется функция Quolitent & Remainder (Частное и остаток) (рис. 11) Если x кратно y, то есть делится на y без остатка, то на выходе “остаток” будет 0.

Рис. 11

Рис. 12

Генерирование массива дискретного процесса производится с помощью функции Select (Выбрать) (рис. 12). Функция обеспечивает передачу одного из двух входных значений на выход в зависимости от логической переменной, подсоединяемой к входу s. Если s = TRUE, то на выход передается значение, подаваемое на вход t. Если s = FALSE, то на выход передается значение, подаваемое на вход f.

Алгоритм генерирования дискретного процесса таков: выход равен отсчету исходного процесса, если остаток от деления i на Nд равен 0, и выход равен 0, если остаток от деления i на Nд не равен 0. Программа, составленная по этому алгоритму, приведена на рис. 13.

Рис. 13

Рис. 14

Генерирования массива, восстановленного фиксатором первого порядка, производится по следующему алгоритму: выход равен отсчету дискретного процесса, если остаток от деления i на Nд равен 0, и выход равен предыдущему значению восстановленного процесса, если остаток от деления i на Nд не равен 0. Программа, составленная по этому алгоритму, приведена на рис. 1 Регистр в цепи обратной связи обеспечивает запоминание предыдущего значения выходного процесса

Генерирование массива, восстановленного фиксатором первого порядка начинается с определения угла наклона интерполирующей прямой (см. рис. 15). Для этого определяется приращение процесса за интервал дискретизации. Оно равно разности между соседними отсчетами процесса, восстановленного фиксатором нулевого порядка для i, кратного Nд. Поделив это приращение на Nд,, получим приращение между соседними отсчетами. Это приращение запоминается на интервал дискретизации. Выходной массив получается накоплением (интегрированием) приращений.

Рис. 15

Ошибка дискретизации определяется как разность между задержанным исходным массивом и восстановленным массивом при изменяющейся задержке от 0 до 2Nд. Как говорилось ранее, задержка осуществляется функцией циклической задержки Rotate 1D Array (Циклически сместить одномерный массив) (рис. 16). Функция циклически смещает элементы массива (array) на число позиций и в направлении, определяемом значением на входе n. Например, при n = 1 элементы смещаются на одну позицию в направлении увеличения индекса.

Рис. 16 Рис. 17

Блок-схема, реализующая задержку массива, изображена на рис. 17. Она помещается в структуру For Loop. При i = 0 на вход s функции Select подается FALSE и выходной массив функции Select равен исходному массиву, подсоединенному к входу f. При i > 0 на вход s подается TRUE и на выход с входа t проходит исходный массив, задержанный на одну позицию. И т.д. Количество итераций N = 2Nд.

Для измерения среднеквадратической ошибки используется ВП Standard Deviation and Variance (Среднеквадратичное отклонение и дисперсия) (рис. 18). Блок-схема измерения ошибки в структуре For Loop приведена на рис. 19. На входы вычитающего устройства подаются задержанный и восстановленный массивы.

Рис. 18 Рис. 19

Рис. 20

Сформированный массив СКО подается на схему индикации ошибок (рис. 20), куда входят графический индикатор Graph, три цифровых индикатора Num Ind и функции Array Max & Min (Максимум и минимум массива) , которая используется для определения минимального значения элемента массива (min value) и индекса этого элемента (min indexes), и Index Array для определения полной ошибки при подаче значения 0 на вход index.

Заключение

LabVIEW является открытой системой программирования и имеет встроенную поддержку всех применяемых в настоящее время программных интерфейсов, таких как Win32 DLL, COM.NET, DDE, сетевых протоколов на базе IP, DataSocket и др. В состав LabVIEW входят библиотеки управления различными аппаратными средствами и интерфейсами, такими как PCI, CompactPCI/PXI, VME, VXI, GPIB (КОП), PLC, VISA, системами технического зрения и др. Программные продукты, созданные с использованием LabVIEW, могут быть дополнены фрагментами, азработанными на традиционных языках программирования, например C/С++, Pascal, Basic, FORTRAN. И наоборот можно использовать модули, разработанные в LabVIEW в проектах, создаваемых в других системах программирования. Таким образом, LabVIEW позволяет разрабатывать практически любые приложения, взаимодействующие с любыми видами аппаратных средств, поддерживаемых операционной системой компьютера.

Список литературы:

1. Н.А. Виноградова, Я.И. Листратов, Е.В. Свиридов. «Разработка прикладного программного обеспечения в среде LabVIEW». Учебное пособие - М.: Издательство МЭИ, 2005.

2. http://www.automationlabs.ru/

3. http://digital.ni.com/

4. http://www.labview.ru/

5. http://ru.wikipedia.org/

Размещено на Allbest.ru


Подобные документы

  • Дискретизация сигналов - преобразование функций непрерывных переменных в дискретные; возможность их восстановления с заданной точностью. Дискретно-квантованные способы представления процессов, отличие от аналоговых: полиномы Лежандра, функции Уолша.

    реферат [805,6 K], добавлен 13.03.2011

  • Разработка в среде программирования LabVIEW прикладного программного обеспечения для организации взаимодействия с измерительной и управляющей аппаратурой. Моделирование линейных непрерывных и замкнутых систем. Численное решение дифференциальных уравнений.

    реферат [213,1 K], добавлен 18.03.2011

  • Система программирования LabVIEW и ее использование в системах сбора и обработки данных. Программирование, основанное на потоках данных. Генерирование детерминированных процессов. Способность инструментов программы изменяться. Расчет значений массива.

    контрольная работа [424,4 K], добавлен 18.03.2011

  • Особенности разработки и реализации обучающей программы и схемы алгоритмов на языке программирования С++. Понятие равномерной и неравномерной дискретизации. Представление информации (составление кода) в виде таблицы перекодировки или многочлена.

    курсовая работа [704,6 K], добавлен 06.03.2013

  • Структура и функции генератора случайных чисел. Методы предельного уменьшения ошибки второго рода. Усиление шумового сигнала. Его дискретизация по времени и аналого-цифровое преобразование. Формирование случайной последовательности и ее корреляция.

    курсовая работа [299,4 K], добавлен 11.12.2014

  • Разработка прикладного программного обеспечения для организации взаимодействия с измерительной и управляющей аппаратурой с помощью LabVIEW. Генерирование коррелированных случайных процессов и последовательностей, применение рекурсивного фильтра.

    контрольная работа [1,1 M], добавлен 18.03.2011

  • Преобразование "естественной" информации в дискретную форму. Анализ процессов дискретизации и квантования изображения. Векторные и растровые процедуры, применяемые в компьютерной графике. Законы математического описания цвета и виды цветовых моделей.

    презентация [208,4 K], добавлен 29.01.2016

  • Достижения математики в теории полумарковских процессов. Связь управляемых полумарковских процессов и динамического программирования. Разработка программы модели управляемого полумарковского процесса, реализованной на языке программирования СИ++.

    курсовая работа [356,7 K], добавлен 10.09.2017

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

    курсовая работа [771,7 K], добавлен 10.11.2009

  • Применение и генерирование независимого случайного процесса. Исследование вариантов формирования случайных величин с разными законами распределения. Оценка их независимости с помощью построения гистограммы распределения в программной среде LabVIEW.

    контрольная работа [611,5 K], добавлен 18.03.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.