Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
03.06.2014
Размер:
1.87 Mб
Скачать

3. Техника безопасности при выполнении работ

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

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

4. Оформление отчета и зачет по работе

Отчет о выполненной работе должен быть представлен на листах писчей бумаги формата А4. Зачет по работе студент получает только после представления отчета.

Лабораторная работа №1. Инструментальный пакет LabVIEW

Содержание работы: пакет модельного проектирования NI LabVIEW. Лицевая панель и блок-диаграмма. Понятие виртуального прибора. Элементы ввода-вывода. Типы данных.

LabVIEW (англ.  Laboratory Virtual Instrumentation Engineering Workbench) — среда модельного проектирования, разработки и выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments Inc.(США). 

Графический язык программирования «G», используемый в LabVIEW, основан на архитектуре потоков данных. Последовательность выполнения операторов в таких языках определяется не порядком их следования (как в императивных языках программирования), а наличием данных на входах этих операторов. Операторы, не связанные по данным, выполняются параллельно в произвольном порядке.

Программа, созданная в LabVIEW называется виртуальным прибором (ВП, англ. Virtual Instrument, VI) и состоит из двух частей:

  • блок - диаграммы, описывающей выполняемый алгоритм в графическом виде

  • лицевой панели, описывающей внешний интерфейс виртуального прибора.

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

Лицевая панель виртуального прибора содержит средства ввода-вывода: элементы управления и индикаторы.

Элементы управления (controls) содержат данные, вводимые пользователем и являются источниками данных на блок-диаграмме.

Индикаторы (indicators) содержат выходные данные виртуального прибора.

Блок - диаграмма содержит функциональные узлы, являющиеся источниками, приемниками и средствами обработки данных. Также компонентами блок-диаграммы являются терминалы (выводы объектов на лицевой панели) и управляющие структуры (являющиеся аналогами таких элементов текстовых языков программирования, как условный оператор «IF», операторы цикла «FOR» и «WHILE» и т. п.). Проще говоря, блок-диаграмма содержит графический код виртуального прибора LabVIEW.

Основные типы данных, используемые для выполнения данной лабораторной работы: boolean, int, double и string.

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

  1. Применение цифровых типов данных в LabVIEW.

Создадим новый виртуальный прибор. На лицевой панели необходимо поставить элементы numeric control и numeric indicator. Первые будут содержать операнды, а вторые - выходных данные программы.

Перейдем на блок-диаграмму. Добавим на блок-диаграмму блок Compound Arithmetics. Соединим все элементы проводниками. Запустим ВП.

Как видно из значений индикатора, произошло переполнение разрядной сетки. Для решения этой проблемы изменим тип данных одного из операндов на I32. Результат мы можем видеть на рис.1.1и рис.1.2

Рисунок 1.1- блок-диаграмма

Рисунок 1.2- Лицевая панель

  1. Применение типовых логических операторов в LabVIEW.

На лицевой панели установим индикатор Round LED и элемент управления PushButton. Перейдем на блок-диаграмму и установим из палитры логических функций четыре логических элемента (и, или, и-не, или-не).

С помощью PushButton будем менять тип входного сигнала. Оценим полученные результаты (рис.1.3 и рис.1.4)

Рисунок 1.3 – Лицевая панель виртуального прибора

Рисунок 1.4 – Блок-диаграмма прибора 1.3

  1. Применение строкового типа данных в LabVIEW.

Добавим на лицевую панель два элемента управления типа String. Введем в них строки так, как показано на рис.5. Для вывода результата установим элемент индикатор String.

Задача заключается в том, чтобы вывести строку в зависимости от поставленного условия. В нашем случае сравниваются два операнда типа Real, т.е., если первое число больше второго, то выводится первая строка и наоборот. Результат выполнения виртуального прибора и его блок-диаграмма приведены на рис.1.5 и рис.1.6

Рисунок 1.5 – Строковые элементы ввода-вывода на лицевой панели ВП

Рисунок 1.6 – Блок-диаграмма ВП с рисунка 1.5

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

Лабораторная работа №2. Структуры среды LabVIEW. Виртуальный прибор, реализующий генерацию гармонических колебаний

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

Структура Case (рис. 2.1) позволяет осуществить выбор одного из двух (или более) случаев, и выполнить в зависимости от этого выбора нужный графический код, размещенный в соответствующем фрейме структуры. Case structure похожа на конструкцию if...then...else в текстовых языках программирования и является полным функциональным аналогом конструкции Select case.

Рисунок - 2.1

Работает структура Case весьма просто – на блок-диаграмме размещается рамка Case structure, содержащая переключатель состояния. С помощью него можно выбрать доступные для исполнения фреймы (по умолчанию их два - true и false, соответственно). На управляющий вход подается сигнал управления, и, в зависимости от него, исполняется нужный фрейм структуры.

Реализуем модель, реализующую единовременную генерацию следующих функций времени:

Известно, что если вывести на один график значения x и y таким образом, что x=y(t), то в результате должна получиться окружность единичного радиуса. Используем это свойство для проверки работы нашего генератора.

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

  1. Создадим диалоговую структуру, которая выводит на экран диалоговое окно с запросом о продолжении действий и, в зависимости от ответа, либо продолжает выполнение ВП, либо прекращает.

Для этого создадим изученную ранее структуру case. Внутрь фрейма True установим диалоговый элемент Two Button Dialog (рис. 2.2)

Рисунок 2.2 – Реализация диалога с пользователем

Фрейм False оставим пустым. Добавим структуру While Loop для непрерывного вывода точек сигнала. N зададим

  1. Необходимо изменить алгоритм вывода таким образом, чтобы при каждом нажатии на кнопку «Yes», на график выводились следующие 100 точек генерируемых сигналов. Для этого создадим прибор анализа счетчика цикла, показанный на рис. 2.3.

Рисунок 2.3

В результате выполнения ВП на данном этапе работы появится диалоговое окно (рис. 2.4)

Рисунок 2.4 – Диалоговое окно ВП

При нажатии кнопки «No» выполнение программы прекращается.

  1. Создадим генератор гармонический колебаний с помощью стандартной табличной функции LabVIEW, и выведем на экран виртуального осциллографа графики искомых функций времени. Для этого используем блок виртуального осциллографа Waveform chart (рис. 2.5)

Рисунок 2.5 - Вывод графика sin() на WaveformChart

  1. Для проведения кольцевого теста, нам необходимо сделать следующие действия. Добавим на блок-диаграмму виртуальный осциллограф XY Graph, на вход которому подадим выходные значения переменных. Соединяем генератор с XYGraph с помощью блока Bundle. В результате выполнения ВП на лицевой панели мы можем видеть следующее (рис. 2.6)

Рисунок 2.6 – Лицевая панель виртуального прибора

Вывод: В результате выполнения лабораторной работы изучены структуры Case и For в LabVIEW, структура цикла While Loop. Реализован диалог с пользователем. Создан табличный генератор гармонических колебаний, верифицированный при помощи кольцевого теста.

Лабораторная работа №3. Реализация генератора гармонических сигналов на основе рекуррентных соотношений

Цель работы: разработать генератор на основе рекуррентных соотношений. Оценить погрешность полученного решения.

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

Пусть необходимо спроектировать цифровой генератор двух гармонических сигналов вида синуса и косинуса с заданными значениями A, ω, φ вида

При ω = 2πf = 2π/Т и периоде дискретизации Ts= 1/fsфункции становятся решетчатыми (дискретными) и принимают вид

Функции синуса и косинуса при A = 1 и φ = 0 можно представить в виде

При u1[θn]=sin[θn], u2[θn]=cos[θn], sin[θ]=S, cos[θ]=Cвыражения (3) примут вид

Формулы (3.4) не имеют методической погрешности. Вычисленные дискретные значения функций u1[n] и u2[n] абсолютно точно совпадают со значениями непрерывных функций (1) для моментов времени t=nTs (n = 1, 2, …).

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

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

Методическую погрешность найдем как разность аналитического (табличного) решения и численного. Как видно из рис. 3.1 и 3.2, погрешность рекуррентного генератора практически равна нулю и находится на уровне инструментальной погрешности типа double. Блок-диаграмма представлена на рис.3.3

Рисунок 3.1 – Лицевая панель виртуального прибора

Рисунок 3.2 – Погрешность генератора по рекуррентным соотношениям

Рисунок 3.3 – Блок-диаграмма виртуального прибора

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

Лабораторная работа №4. Сравнительный анализ различных реализаций генератора гармонических колебаний

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

Генератор на основе решателя определяющих уравнений

Одним из способов генерации функции времени является воспроизведение решения определяющего дифференциального уравнения. В случае гармонического сигнала, необходимо выполнить численное интегрирование дифференциального уравнения второго порядка выбранным методом, например Рунге – Кутта (RK2 или RK4).

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

  1. Возьмем табличный генератор гармонических колебаний и генератор на основе рекуррентных соотношений из лабораторных работ №2 и №3.

  2. Построим генератор на основе решателя определяющих уравнений. Для этого установим на блок-диаграмму структуру Simulation Loop. Данная структура представляет собой полный функциональный аналог Simulink-модели системы MATLAB. Установим два интегратора и значения коэффициентов, замкнем обратные связи (рис. 4.1). Выведем значения переменных состояния на виртуальные осциллографы.

  3. Выведем на лицевую панель выходные значения всех трех генераторов.

  4. Определим погрешность каждого, как разность численного и аналитического решения.

Рисунок 4.1 – Структура генератора на основе решателя определяющего уравнения

Рисунок 4.2 – Погрешность генератора гармонических колебаний на основе рекуррентных соотношений

Рисунок 4.3 - Погрешность генератора гармонических колебаний на основе решателя определяющих уравнений

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

Лабораторная работа № 5. Переход от передаточной функции к исполняемой модели способом прямого программирования

Цель работы: Освоить переход от передаточной функции к непрерывной модели в Simulation Module способом прямого программирования.

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

  • прямого программирования;

  • параллельного программирования;

  • последовательного программирования;

  • совместного интегрирования;

Для иллюстрации рассмотрим систему со следующей передаточной функцией:

(5.1)

Прямое программирование

Уравнение (5.1) представим в виде:

(5.2)

Умножим числитель и знаменатель (5.1) на промежуточную фиктивную переменную E(S).

(5.3)

Приравнивая значения знаменателей выражения (5.3), получим следующее равенство:

(5.4)

Выразим значение E(S) через R(S) из значения E(S)∙S - 1 и E(S)∙S – 2

(5.5)

(5.6)

и

(5.7)

Операции E(S)∙S - 1, E(S)∙S – 2и E(S)∙S – 3 реализуются цепочкой интеграторов с передаточной функцией S-1.

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

(5.8)

Выход системы y(t) является линейной комбинацией переменных состояния и определяется уравнением (3.8)

(5.9)

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

  1. Для оценки эквивалентности модели системы (5.8) мы будем сравнивать решение, созданное с помощью блока Transfer Function, и решение, найденное способом прямого программирования.

  2. Установим внутрь Simulation Loop блок Transfer Function. Сформируем нумератор и деноминатор блока аналогично выражению (5.1)

  3. Реализуем метод прямого программирования в той же Simulation Loop так, как показано на рис. 5.2.

  4. Сравним полученные результаты. Выходные сигналы двух моделей должны совпадать (рис.5.3).

  5. Определим адекватность моделей с помощью нахождения разности их выходных сигналов (рис. 5.4).

Рисунок 5.1 – Модель уравнения 5.1, созданная с помощью блока Transfer Function

Рисунок 5.2 – Модель уравнения 5.1 по способу прямого программирования.

Рисунок 5.3 – Выходной сигнал модели с рис. 5.2 полностью совпадает с сигналом блока Transfer Function

Рисунок 5.5 – Погрешность моделирования

Выводы: изучен способ эквивалентного перехода от передаточной функции к нормальной форме Коши и построения ее непрерывной модели в Simulation Module. Способ прямого программирования требует наличия многовходовых сумматоров по входу и по выходу, что не всегда допустимо при аппаратной реализации.

Лабораторная работа №6. Способ параллельного программирования

Цель работы: освоить переход от передаточной функции к нормальной форме Коши способом параллельного программирования.

Входные данные аналогичны лабораторной работе № 5. Рассмотрим систему со следующей передаточной функцией:

(6.1)

Равенство (6.1) необходимо представить в виде суммы дробно-рациональных функций. Для этого необходимо определить корни (полюса) знаменателя. Используем функцию roots в Matlab Script. Корнями знаменателя являются действительные числа 0, -3, -4.

Из метода элементарных дробей известно, что существуют константы A, B и C, такие, что

(6.2)

Умножение обеих частей последнего уравнения на S(S+3)(S+4) приводит к уравнению

(6.3)

Подставив в (6.3) корень S1=0 получим

2=12А ; А=1/6

После подстановки S2=-3

2= -3B; B = -2/3

Подстановка S3=-4 позволяет определить коэффициент C:

6=4С; С = 6/4 = 3/2

Передаточная функция (3.2) примет окончательный вид:

(6.4)

(6.5)

Выражения для промежуточных переменных E1(S), E2(S) и E3(S) найдем из следующих равенств:

(6.6)

(6.7)

(6.8)

(6.9)

(6.10)

Схема в переменных состояния (6.4) использует выражения E1(S), E2(S) и E3(S. Выражение для выхода Y(S) следует из (6.5):

(6.11)

Система дифференциальных уравнений имеет теперь вид:

(6.12)

(6.13)

(6.14)

(6.15)

Уравнение выхода тогда выглядит следующим образом:

(6.16)

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

  1. Для оценки эквивалентности модели системы (6.12-6.15) мы будем сравнивать решение, созданное с помощью блока Transfer Function, и решение, найденное способом параллельного программирования.

  2. Установим внутрь Simulation Loop блок Transfer Function. Сформируем нумератор и деноминатор блока аналогично лабораторной работе №5.

  3. Реализуем уравнения, созданные по методу параллельного программирования так, как показано на рис. 6.1

  4. Сравним полученные результаты. Выходные сигналы двух моделей должны совпадать (рис.6.2).

  5. Определим адекватность моделей с помощью нахождения разности их выходных сигналов (рис. 6.3).

Рисунок 6.1 – Модель по методу параллельного программирования

Рисунок 6.2 – Выходные сигналы двух моделей

Рисунок 6.3 – Погрешность модели по методу параллельного программирования относительно Transfer Function

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

Лабораторная работа № 7. Способ последовательного программирования

Цель работы: Изучение перехода от передаточной функции к нормальной форме Коши методом последовательного программирования.

Рассмотрим систему со следующей передаточной функцией:

(7.1)

Равенство запишем в виде дробно-рациональных функций. Для этого с помощью функции roots необходимо найти корни числителя (нули) передаточной функции. Значения нулей для (7.1) :- 1; -2

Тогда числитель замещается произведением (s+1)(s+2), а знаменатель был получен в лабораторной работе №6 - (S(S+3)(S+4)) - и уравнение (7.1) примет вид:

(7.2)

Аналогичный вид (7.2) передаточной функции может быть получен с помощью функции преобразования zpk (H1(S)).

Система дифференциальных уравнений имеет теперь вид:

(7.2)

(7.3)

(7.4)

(7.5)

Уравнение выхода тогда выглядит следующим образом:

(7.6)

Рисунок 7.1 – Модель по методу последовательного программирования

Заметим, что в варианте структуры, приведенном на рисунке 7.1, в уравнение выхода входит производная , значение которой берется с выхода сумматора (со входа интегратора). При аппаратной реализации в данной структуре будет блок сумматора-интегратора, и добавление производной к выходу станет невозможным. Для решения этой проблемы преобразуем структуру (рисунок 7.1) к виду, представленному на рисунке 7.2, подставив в уравнение выхода значение производной . Тогда уравнение выхода примет вид:

Рисунок 7.2 - 2й вариант структуры модели 7.1

Представим передаточную функцию в виде произведения блоков первого порядка:

Рисунок 7.3 - Последовательное программирование, структура в виде произведения передаточных функций

Система дифференциальных уравнений для 7.3 выглядит следующим образом:

(7.7)

(7.8)

(7.9)

(7.10)

Уравнение выхода:

(7.11)

Проанализируем степень эквивалентности модели, полученной последовательным программированием, с исходной моделью (рис. 7.4 и 7.5).

Рисунок 7.5 – Выходные сигналы обеих моделей совпадают

Рисунок 7.4 – Оценка погрешности

Выводы: метод последовательного программирования обеспечивает меньшую эквивалентность с исходной моделью. Требуется трудоемкая и не всегда корректно выполняемая операция нахождения корней. В случае комплексных корней полиномов установка нужных коэффициентов становится невозможной. Также требуется перестройка модели для исключения из вычислительного процесса «неудобной» операции дифференцирования.

Лабораторная работа №8. Способ совместного интегрирования

Цель работы: Изучение перехода от передаточной функции к нормальной форме Коши по методу совместного интегрирования

Рассмотрим ту же передаточную функцию, что и в работах №№5-7:

Представим выражение в следующем виде:

(8.1)

(8.2)

(8.3)

Вынесем и обозначим выражение в скобках как x3:

(8.4)

x3

Тогда выражение принимает следующий вид:

(8.5)

Подставив выражение (3.45) в (3.43), получим:

(8.6)

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

(8.7)

(8.8)

2

Примем выражение в скобках за x2, тогда:

(8.9)

(8.10)

(8.11)

Обозначим y=x1

(8.12)

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

(8.13)

(8.14)

(8.15)

(8.16)

Уравнение выхода:

Рисунок 8.1 – Модель по методу совместного интегрирования

Для сравнения результатов моделирования используется блок Transfer Function. Графики решений выводятся на одном графическом индикаторе. Результаты моделирования представлены на рисунке 8.2. Графики двух решений практически не различимы из-за ограничений системы визуализации.

Рисунок 8.2 – Графики выходных значений двух моделей

Порядок выполнения работы аналогичен работам №№5-7.

Рисунок 8.3 – Погрешность модели по методу совместного интегрирования

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

Лабораторная работа №9. Реализация импульсных моделей динамических систем в LabVIEW

Цель работы: Изучить переход от непрерывной модели динамической системы к импульсной. Промоделировать импульсную модель системы в среде LabVIEW.

Рассмотрим следующую систему дифференциальных уравнений:

(9.1)

(9.2)

Где w = 2π

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

  1. Построим непрерывную модель данной системы аналогично тому, как мы строили модели в работах 5-8 (рис. 9.1, вверху). Подадим на вход модели единичный импульс (Step).

  2. Перейдем к импульсной модели (рис. 9.1, внизу) путем добавления импульсных (ключевых) элементов – блоков Select. Управление временами срабатывания реализуем при помощи задающего генератора прямоугольных импульсов. Смещение момента срабатывания во времени обеспечит блок Integer Delay Z-1. Параметры Simulation Loop указаны на рис. 9.1

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

  4. Увеличим все коэффициенты в число раз (4), соответствующее числу членов правых частей уравнений 9.1 и 9.2.

  5. Выведем выходные сигналы обеих импульсных моделей в каждый 4й момент времени, и найдем среднее значение выходного сигнала. Найдем погрешность каждого из этих сигналов и выведем на виртуальный осциллограф.

Рисунок 9.1 – Переход от непрерывной (вверху) к импульсной модели (внизу) уравнений 9.1 и 9.2

Рисунок 9.2 – Погрешность каждой из моделей и усредненного значения

Выводы: Построена импульсная модель динамической системы в двух вариантах с различным порядком коммутации. Погрешность усредненного значения соответствует погрешности численного метода интегрирования второго порядка.

Лабораторная работа №10. Цифровое моделирование динамической системы в LabVIEW

Цель работы: реализация цифровой модели динамической системы.

Рассмотрим систему дифференциальных уравнений из работы №9:

(10.1)

(10.2)

Где w = 2π

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

  1. Перейдем к цифровой модели (10.1), заменив блоки Simulation Module блоками LabVIEW Core.

  2. Для этого необходимо заменить импульсные элементы структурами ветвления (Case), а задающий генератор преобразовать во внутренний цикл For.

  3. Вывод переменных состояния реализуем из наружного цикла, реализовав, таким образом, вывод каждого n-ого значения, где n-шаг интегрирования.

Рисунок 10.1 – Цифровая модель системы 10.1 – 10.2

  1. Убедимся, что переход совершен эквивалентно, выведя график выходной переменной состояния на виртуальный осциллограф (рис. 10.2).

Рисунок 10.2 – цифровая модель

  1. Добавим второй процессор с импульсными элементами, имеющими противоположный порядок срабатывания (рис. 10.3)

  2. Создадим проект LabVIEW Real Time, и используем блок аналогового вывода AO (Analog Output) для выдачи выходного сигнала цифровой модели на реальный осциллограф. Убедимся что отображаемый график соответствует рис. 10.2.

  3. Самостоятельно оцените погрешность полученных решений относительно непрерывной и импульсной моделей.

Рисунок 10.3 – Цифровая модель системы с двумя интегрирующими процессорами

Вывод: Реализован цифровой двухпроцессорный дифференциальный анализатор с плавающей точкой. Осуществлен переход к аппаратной реализации средствами LabVIEW Real-Time. В качестве аппаратной платформы применяется промышленный РАС-контроллер cRIO 9012.

Лабораторная работа №11. Переход к реализации с фиксированной точкой

Цель работы: переход к реализации дифференциального анализатора с типом данных с фиксированной точкой (I32).

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

(11.1)

Структурная схема аналогового сумматора-умножителя имеет вид:

Рисунок 11.1 - Аналоговый сумматор-умножитель

Где

(11.2)

Уравнение (11.1) называется моделируемым, а уравнение (11.2) – моделирующим (или машинным).

Запишем масштабы входных и выходных переменных:

(11.3)

Представим значения напряжений Vz,Vx1 и Vx2 через произведения масштабов на значения соответствующих математических величин в выражении (11.2)

(11.4)

Для обеспечения равенства (11.2) и (11.4) необходимо выполнить следующие условия:

(11.5)

Уравнения вида (11.5) называются масштабными. В результате преобразований получим значения коэффициентов передачи сумматора:

(11.6)

Отметим, что α1k1 и α2k2 являются математическими величинами и безразмерны. Изобразим структурную схему цифрового устройства, являющегося аналогом непрерывного сумматора (рис.11. 2):

Рисунок 11.2 - Цифровой сумматор

Умножители обеспечивают операции перемножения, сдвиговые регистры (SHR1,SHR2) – операцию деления на величину (2n-1), конверторы преобразуют данные к формату входных переменных, а сумматор Add выполняет сложение.

Данные в цифровом аналоге представлены в формате 16-тиразрядных знаковых целых чисел (int16).

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

Запишем выражения для масштабов, подобные выражению (11.3):

(11.7)

где x1d, x2d и zd – машинные переменные. Их максимальные значения зависят только от длины машинного слова. Для формата представления данных int16 максимально положительное представимое число равно 215-1 = 32767.

Масштабное уравнение, соответствующее (11.1) и полученное по рис.11.2 имеет вид:

(11.8)

После представления машинных переменных через масштабы и математические переменные получим:

(11.9)

отсюда:

Масштабные уравнения получатся за счет приравнивания коэффициентов при входных переменных х1 и х2:

Значения машинных коэффициентов a1d и a2d определятся следующим образом:

(11.10)

Выражения и являются масштабами для представления машинных коэффициентов:

Эти масштабы необходимы для вычисления масштабов на выходах блоков Mul1 и Mul2

(11.11)

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

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

  1. Перейдем к модели генератора гармонических колебаний с фиксированной точкой (рис. 11.4).

Рисунок 11.4 – генератор гармонических колебаний с фиксированной точкой

  1. Используем полученный генератор для реализации модели цифрового фильтра на базе дифференциального анализатора из лабораторной работы 10 (рис. 11.5).

Рисунок 11.5 - Модель фильтра на базе дифференциального анализатора c фиксированной точкой

  1. Создадим проект LabVIEW Real Time FPGA (рис. 11.6), в него добавим модуль CompactRIO и перенесем туда виртуальные приборы генератора и фильтра.

Рисунок 11.6 - Структура проекта NI LabView для CompactRIO

  1. На рисунке 11.6 кроме виртуальных приборов, реализующих генератор и фильтр можно видеть еще один виртуальный прибор. Он занимается извлечением данных из буфера FIFO, обработкой их и визуализацией результатов. CompactRIO. Блок – диаграмма этого прибора изображена на рисунке 11.7.

Рисунок 11.7 - Блок-диаграмма «сборщика» значений сигнала из буфера FIFO

  1. Добавим блоки аналогового вывода в наш виртуальный прибор и оценим погрешность решения. Максимальное ее значение не должно превышать 7*10-7 (рис. 11.8).

Рисунок 11.7 - Погрешность генератора, реализованного на CompactRIO.

Выводы: Пройден полный цикл модельного проектирования встраиваемой системы (цифрового фильтра). От математического описания мы перешли к аппаратно-ориентированной модели с фиксированной точкой, из которой создали Bitmap-код для ПЛИС при помощи механизма автоматической генерации кода.

СПИСОК ЛИТЕРАТУРЫ

1. Бутусов, Д.Н., Жуков К.Г. Лабораторный практикум по дисциплине «Компьютерные технологии виртуализации» // Сборник материалов XV Международной Конференции «Современное образование: содержание, технологии, качество», секция Инновационные процессы в Российской образовательной системе.

2. Бутусов, Д. Н., Андреев В. С. Модельное проектирование генератора гармонических сигналов на базе ПЛИС // Известия СПбГЭТУ «ЛЭТИ» - № 10, 2011.

3. Бутусов, Д.Н. Текст диссертации на соискание научной степени кандидата технических наук «Автоматизация проектирования встраиваемых систем»

4. Жуков, К. Г. Модельное проектирование встраиваемых систем в LabView - М., “ДМК Пресс”, 2011. – 688 с.

5. Тревис Дж., Кринг Дж. LabVIEW для всех / Пер. с англ. Н.А. Клушина. – М.: ДМК Пресс, 2008. – 880 с.

45

Соседние файлы в папке ктв
  • #
    03.06.201411.84 Кб24lab5a.vi
  • #
    03.06.2014388.76 Кб23lab5b.vi
  • #
    03.06.2014172.96 Кб22lab6.vi
  • #
    03.06.201416.09 Кб23lab7.vi
  • #
    03.06.2014182.42 Кб22lab9.vi
  • #
    03.06.20141.87 Mб35Metoda_KTVS_25.docx