СодержаниеВведение1. Программный комплекс LabVIEW2. Программирование, основанное на потоках данных3. Достоинства LabVIEW
4. Поиск экстремумадвумерной функции
5. Поиск экстремума
6. МетодГаусса-Зейделя
Заключение
Список литературы
Введение
Воснове технологии использования LabVIEW лежит комбинированное моделированиесистем на ЭВМ, включающее аналитическое, имитационное и натурное.
Дляаналитического моделирования характерно то, что алгоритм функционированиясистемы записывается в виде некоторых аналитических соотношений(алгебраических, интегро-дифференциальных, конечно – разностных и т.п.) илилогических условий. При имитационном моделировании алгоритм функционированиясистемы воспроизводится во времени с сохранением логической структуры ипоследовательности протекания элементарных явлений, составляющих процесс.
Натурныммоделированием называют проведение исследования на реальном объекте свозможностью вмешательства человека в процесс проведения эксперимента ипоследующей обработки результатов эксперимента на вычислительной технике.
Отличиемодельного эксперимента от реального заключается в том, что в модельномэксперименте могут быть реализованы любые ситуации, в том числе «невозможные» иаварийные, что в силу разных причин бывает недопустимо при работе с реальнымиобъектами. Все представленные виды моделирования могут быть реализованы сиспользованием системы программирования LabVIEW. LabVIEW может успешноприменяться в образовательных и научных целях, при промышленной автоматизации,в проектных и коммерческих структурах, связанных с тестированием и измерениемкаких-либо параметров, их анализом, визуализацией результатов, созданием базданных, использованием компьютерных сетей.
1. Программный комплекс LabVIEW
LabVIEW (LaboratoryVirtual Instrumentation Engineering Workbench) – это среда разработки иплатформа для выполнения программ, созданных на графическом языкепрограммирования «G» фирмы National Instruments (США). Первая версия LabVIEWбыла выпущена в 1986 году для Apple Macintosh, в настоящее существуют версиидля UNIX, GNU/Linux, Mac OS и пр., а наиболее развитыми и популярными являютсяверсии для Microsoft Windows.
LabVIEW используется всистемах сбора и обработки данных, а также для управления техническимиобъектами и технологическими процессами. Идеологически LabVIEW очень близка к SCADA-системам, но в отличие от них в большей степениориентирована на решение задач не столько в области АСУ ТП, сколько в областиАСНИ. 2. Программирование, основанное на потоках данных
Графический языкпрограммирования «G», используемый вLabVIEW, основан на архитектуре потоковданных. Последовательность выполнения операторов в таких языках определяется непорядком их следования (как в императивных языках программирования), а наличиемданных на входах этих операторов. Операторы, не связанные по данным,выполняются параллельно в произвольном порядке.
В основе программированияв LabVIEW лежит понятие Виртуальных приборов (Virtual Instruments, VI). Налицевой панели, как и положено, располагаются элементы управления программой –кнопки, графики, выключатели и тому подобное. Блок-схема – это, по сути, и естьсама программа. При написании (а вернее создании, потому что писать приходитсяне так уж и много) программы используется такое понятие, как «поток данных»(Data Flow). Суть его в том, что все элементы программы (которые представленыграфически) связываются между собой связями (проводами, нитками) по которым ипроисходит передача данных. В общем, описать это довольно сложно, лучшепосмотреть на картинку, рис. 3.
/>
Рис. 1. Простейшийприбор.
Цифрами обозначены:
· Точки, элементыпрограммы (Nodes)
· Терминалыиндикаторов (Indicator Terminals)
· Связи (Wires)
· Терминалыуправляющих элементов (Control Terminals)
Итак, в LabVIEW высоздаете пользовательский интерфейс (лицевую панель), с управляющими элементамии индикаторами. Управляющие элементы – это тумблеры, кнопки, поля ввода ипрочие устройства ввода. Индикаторы – это графики, шкалы, лампочки, текстовыеполя и тому подобное. После создания пользовательского интерфейса, выдобавляете программный код, который управляет объектами на лицевой панели. Этоткод содержится в схеме (block diagram). Этот код чем-то напоминает собойблок-схему, хотя отличий много.
LabVIEW можноиспользовать для того, чтобы управлять различным оборудованием, таким, как,устройства сбора данных, различные датчики, устройства наблюдения, двигательныеустройства (например, шаговые моторы) и тому подобное, а так же GPIB, PXI, VXI,RS-232 b RS-484 устройства. Также в LabVIEW имеются встроенные средства дляподключения созданных программ к сети, используя LabVIEW Web Server и различныестандартные протоколы и средства, такие как TCP/IP и ActiveX.
Используя LabVIEW, можносоздавать приложения для тестирования и измерений, сбора данных, управленияразличными внешними устройствами, генерации отчетов. Так же можно создатьнезависимые исполняемые файлы и библиотеки функций, такие как DLL, так какLabVIEW – это полноценный 32-битный компилятор. 3. Достоинства LabVIEW
· Полноценный языкпрограммирования
· Интуитивнопонятный процесс графического программирования
· Широкиевозможности сбора, обработки и анализа данных, управления приборами, генерацииотчетов и обмена данных через сетевые интерфейсы
· Драйвернаяподдержка более 2000 приборов
· Возможностиинтерактивной генерации кода
· Шаблоныприложений, тысячи примеров
· Высокая скоростьвыполнения откомпилированных программ
· Совместимость соперационными системами Windows2000/NT/XP, Mac OS X, Linux и Solaris.
LabVIEW поддерживает огромный спектр оборудования различныхпроизводителей и имеет в своём составе (либо позволяет добавлять к базовому пакету)многочисленные библиотеки компонентов:
· для подключениявнешнего оборудования по наиболее распространённым интерфейсам и протоколам(RS-232, GPIB 488, TCP/IP и пр.);
· для удалённогоуправления ходом эксперимента;
· для управленияроботами и системами машинного зрения;
· для генерации ицифровой обработки сигналов;
· для примененияразнообразных математических методов обработки данных;
· для визуализацииданных и результатов их обработки (включая 3D-модели);
· для моделированиясложных систем;
· для храненияинформации в базах данных и генерации отчетов;
· длявзаимодействия с другими приложениями в рамках концепции COM/DCOM/OLE и пр.
Вместе с тем LabVIEW – очень простая и интуитивно понятная система.Неискушённый пользователь, не являясь программистом, за сравнительно короткоевремя (от нескольких минут до нескольких часов) способен создать сложнуюпрограмму для сбора данных и управления объектами, обладающую красивым иудобным человеко-машинным интерфейсом. Например, средствами LabVIEW можно быстропревратить старый компьютер, снабжённый звуковой картой, в мощную измерительнуюлабораторию.
Специальный компонент LabVIEW – Application Builder, позволяет выполнятьLabVIEW-программы на тех компьютерах, на которых не установлена полная средаразработки.
4. Поиск экстремумадвумерной функции
Целью моделированияявляется, как правило, получение новых знаний об объекте моделирования. Припроектировании – это определение лучшего варианта устройства, оптимальныхпараметров и т. д.
Любой объект исследованияможно представить в виде “черного ящика” с определенным количеством входов X = (x1, x2, …, xn) и выходов Y = (y1, y2, …, ym). Входную переменную xi называют фактором, а выходную переменную yj – окликом. Зависимость Y(X) называется функцией отклика. Для получения полнойинформации о свойствах функции отклика в принципе необходимо проведение опытовво всех точках области определения факторов. Такой эксперимент называютэкспериментом с полным перебором всех входных состояний или полным факторныманализом. Ясно, что если фактор является непрерывной переменной, то числоиспытаний должно быть бесконечным. Уменьшение количества испытаний при условииполучения достаточно полной информации о функции отклика является цельюпланирования эксперимента.
/>
Рис. 1
В LabVIEW предусмотрена возможностьвизуального представления двумерной функции отклика, когда отклик и факторызаданы массивами. Для этого используется графический индикатор 3D Surface Graph (рис. 1).
На его входы “x vector” и “y vector” подаются массивы переменных х и y, а на вход “z matrix” – трехмерный массив z(x,y).
При проектированиитипичной является задача оптимизации, то есть определения такой комбинациизначений факторов, при которых отклик принимает экстремальное значение. Этазадача может быть решена аналитически, если установлена функциональная связьотклика с факторами, или экспериментально, когда функция отклика Y(X) неизвестна, но имеется возможность измерить значения Y при различных комбинациях уровнейфакторов х1, х2, …хп. В последней ситуациииспользуются поисковые методы.
5. Поиск экстремума
В поисковых методахэкстремальное значение достигается с помощью последовательных процедур:
а) определениенаправления движения из данной точки по результатам специально организованногоэксперимента;
б) организации движения внайденном направлении и
в) многократноеповторение этих процедур до достижения точки экстремума.
В LabVIEW реализованы два метода поискаэкстремума: симплекс-метод наискорейшего спуска (Downhill Simplex nD) и метод сопряженных градиентов (Conjugate Gradient nD). На рис. 2 показана процедура поиска экстремумасимплекс-методом. Здесь тонкими линиями изображены линии постоянного уровняотклика.
/>
Рис 2
/>
Рис 3
Пусть начальное значениефакторов отображается точкой 1. Для организации поиска минимума двумерногоотклика задаются произвольно еще две точки, так чтобы треугольник 123 был равносторонним.Для каждой точки находится значение отклика, и та точка, для которой значениеотклика максимально, зеркально отображается относительно линии, соединяющей дведругие точки. На рисунке – это точка 2, и она отображается в положение 4.Теперь рассматривается треугольник 134: максимальным значение отклика будет дляточки 3 и она отображается в положение 5. Процедура продолжается пока недостигается точка минимума. Это будет соответствовать круговому или возвратномудвижению точки.
На рис. 3 показанаорганизация градиентного поиска. Градиентом функции y(x1, x2) называется вектор с координатами, равными частнымпроизводным функции по соответствующим факторам. Градиент направлен в сторонумаксимальной крутизны поверхности отклика. Движение по направлению к минимумупроизводится следующим образом. Для начальной точки 1 находится градиент и внаправлении обратном градиенту осуществляется перемещение на один шаг. Дляновой точки опять находится градиент и производится перемещение на один шаг. Ит. д., пока не будет достигнут экстремум. Признак достижения экстремума –изменение аргумента градиента на 180 градусов.
/>
Рис. 4
Наиболее простым вреализации является метод покоординатного поиска (метод Гаусса – Зейделя).Поиск производится сначала по одной из координат до достижения местногоэкстремума, потом аналогично по другой координате и т.д., пока не будетдостигнут экстремум функции (рис. 4). В процессе поиска постоянно сравниваетсятекущее значение отклика с предыдущим значением. Изменение знака этой разностиговорит о достижении местного экстремума и о необходимости перехода к поиску подругой координате.
6. МетодГаусса-Зейделя
В лабораторной работеметод Гаусса-Зейделя используется для поиска максимума двумерной функции
z = exp{[(x – x0)2 + (y – y0)2]/b}. (1)
Эта функция симметричнаотносительно плоскостей x = x0и y = y0, поэтому поиск завершается за два этапа: поиск покоординате х и поиск по координате у. Структурная схема программы виртуальногоприбора приведена на рис. 5.
/>
экстремум двумерная функция программный
Координаты начальнойточки xнач и yнач и величина шага поиска Δ задаются с лицевой панели.Напомним, что шаг поиска это величина приращения координаты за одну итерацию.Шаг поиска берем одинаковым по обеим координатам: Δх = Δу = Δ.
Рассмотрим, какпроизводится определение направления поиска. Считаем, что поиск начинается покоординате х. Сначала рассчитываются значения отклика в начальной точке z = z(xнач, yнач) и отстоящих от нее по координате х на величину δх всторону увеличения и уменьшения координаты: z1 = z(xнач + δх, yнач) и z2 = z(xнач – δх, yнач). Величина δх должна быть не больше шага поискаΔх. В зависимости от соотношения между z, z1 и z2 принимается решение о направлении поиска. Если z2 z >z1, то координата х должна уменьшаться, шаг Δх =-Δ отрицателен. Эти ситуации показаны на рис. 6 а) и в) для начальнойточки, находящейся вблизи максимума.
/>
Рис. 6
Если же z > z1 и z >z2 (рис. 6 б), то поиск проводить не нужно, так какточки, более близкой к экстремуму, при выбранном шаге поиска нет. Анализируязаписанные соотношения между z, z1 и z2, замечаем, что шаг Δx должен быть положительным, если z
Блок-схема программыопределения направления поиска приведена на рис. 7а). Текст программызаписывается в структуре Formula Node (примертекста представлен на рис. 7 б).
/>
Рис. 7
После определениянаправления поиска производится изменение координаты х в сторону достижениямаксимума добавлением к х значения Δх в структуре While (рис. 8), пока вычисленное текущее значение z не станет меньше предыдущего. Замаксимальное значение zпринимается предыдущее значение.
/>
Рис. 8
Условием выхода из цикла While является равенство нулю шага поиска dx или отрицательная разность текущегои предыдущего значений z.Выводятся массивы переменных х, у и z для формирования траектории поиска и последние значения переменных х иу, которые являются начальными координатами для поиска по координате у.
Оценим ошибку определенияэкстремума. Ее значение можно определить, исследуя процесс поиска вблизимаксимума. Рассмотрим подробнее эту ситуацию (рис. 9).Так как z(x)
/>
Рис. 9
Ошибка – это разностьмежду истинной xmист и рассчитанной xm координатами максимума. Чему равномаксимальное значение ошибки? Если уменьшать х, то z(x) будетуменьшаться, а z(х + Δх) увеличиваться.Когда они сравняются, ошибка будет равна Δх/2. При дальнейшем уменьшении хзначение z(х + Δх) становится большезначения z(х) и за максимальное значениепринимается z(х + Δх). Ошибка становитсяравной -Δх/2. Таким образом, ошибка может принимать значения от -Δх/2до Δх/2. Если координаты начальной точки поиска равномерно распределены вобласти определения функции z(x, y), то и ошибка равномерно распределена в интервале(-Δх/2, Δх/2).
Видим, что на ошибку невлияет величина отклонения координаты δх, использованная при определениинаправлении поиска. Малое отклонение δх обеспечивает более точноеизмерение производной, но приводит к дополнительному шагу поиска и возвращениюк исходной точке, что мы видели на примере рис. 9. Поэтому целесообразно братьδх равным максимально возможному значению, то есть шагу поиска.
Аналогично осуществляетсяпоиск по координате у. Выходные переменные х, у и z структуры While,осуществляющей изменение координаты у, выводятся в виде массивов (как на рис 8)для формирования траектории поиска. А для индикации координат точки максимумавыводятся последние значения переменных х, у и z.
Объединение массивовкоординат х, у и z, сформированныхструктурами While, производится функцией Build Array, поставленной в режим формирования одномерногомассива (щелкнуть ПКМ на Build Array и враскрывшемся меню активизировать Concatenate Inputs).
Для индикации траекториипоиска используется графический индикатор 3D Curve Graph (рис. 10). Схема подсоединения к входам “x vector”, “y vector” и “z vector”, а также схема формирования массивов показана нарис. 11. На входы функций подаются одномерные массивы.
/>
Заключение
LabVIEW обладает огромнымарсеналом достоинств, таких как полноценный язык программирования, интуитивнопонятный процесс графического программирования, широкие возможности сбора,обработки и анализа данных, управления приборами, генерации отчетов и обменаданных через сетевые интерфейсы.
Вместе с тем LabVIEW – очень простая и интуитивно понятная система.Неискушённый пользователь, не являясь программистом, за сравнительно короткоевремя (от нескольких минут до нескольких часов) способен создать сложнуюпрограмму для сбора данных и управления объектами, обладающую красивым иудобным человеко-машинным интерфейсом. Например, средствами LabVIEW можнобыстро превратить старый компьютер, снабжённый звуковой картой, в мощнуюизмерительную лабораторию.
Специальный компонент LabVIEW – Application Builder, позволяет выполнятьLabVIEW-программы на тех компьютерах, на которых не установлена полная средаразработки.
Список литературы
1. Н.А. Виноградова, Я.И. Листратов,Е.В. Свиридов. «Разработкаприкладного программного обеспечения в среде LabVIEW». Учебное пособие – М.:Издательство МЭИ, 2005.
2. www.automationlabs.ru/
3. digital.ni.com/
4. www.labview.ru/
5. ru.wikipedia.org/