Скачиваний:
39
Добавлен:
22.02.2014
Размер:
116.74 Кб
Скачать

5.2. Модуль взаимодействия с устройством ввода - вывода

Для обеспечения интерфейса с платой предназначен драйвер INTERRUP.EXE. Он загружает и оставляет в резидентной части функции работы с платой. При этом устанавливаются прерывание 0Fh (IRQ7) и пользовательское прерывание 61h.

Процедура пользователя не должна использовать функции DOS (прерывание 21h), а также стандартные процедуры ввода - вывода С++, использующие эти функции.

Для работы с аппаратурой в программном комплексе предусмотрен объект управления аппаратурой, где в частности имеются следующие функции:

start : запускает таймер платы ЦАП - АЦП;

stop : останавливает таймер платы ЦАП - АЦП;

inicial : инициализирует глобальные переменные. Эта процедура должна быть вызвана первой при работе с драйвером.

5.3. Разработка фундаментальных классов

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

5.3.1. Разработка программного модуля объекта «пи - регулятор».

Программная реализация модуля представлена в виде класса REG, заголовок которого приведен ниже:

class REG

{

public:

float x1,x2,x3,x4,e1,xz,kp,ti,td,l;

float v,vz;

void init(float, float, float, float, float, float, float);

float Compute(float);

};

Соответствие переменным, используемым при разработке схемы алгоритма, приведено в таблице 1.

Таблица 1. Переменные класса REG

1

е1

сигнал ошибки

2

ti

постоянная интегрирования регулятора

3

v

выходной сигнал регулятора

4

xz

сигнал задания

5

kp

коэффициент передачи ПИ - регулятора

6

l

служебная переменная, применяемая для масштабирования выходного сигнала регулятора

7

х

j сигнал, поступающий с платы АЦП (с ОУ)

8

х1,х2,х3,х4

(j-1), (j-2), (j-3), (j-4) соответственно сигналы с выхода объекта управления

9

vz

(j-1) сигнал с выхода регулятора

10

td

постоянная дифференцирования регулятора

В класс REG входят также две функции:

  1. init - функция инициализации переменных. Переменным, описанным в данном классе присваивается первоначальное значение, которое в последствии может быть изменено.

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

5.3.2. Разработка программного модуля объекта «Генератор».

Программная реализация модуля представлена в виде класса Generator, заголовок которого приведен ниже:

class Generator

{

float OA;

public:

float SD,PS,OS,OC,AK;

void init(float);

void Compute(float);

};

Соответствие переменным, используемым при разработке схемы алгоритма, приведено в таблице 2.

Таблица 2. Переменные класса GENERATOR

1

ак, AK

Амплитуда колебаний пробного гармонического сигнала

2

PI

Константа p

3

nf

Нормированный период колебаний

4

OS

Синусоидальная составляющая сигнала в j момент времени

5

ОС

Косинусоидальная составляющая сигнала в j момент времени

6

PS

Величина пробного сигнала в j момент времени

7

РЕ

Период квантования

8

ОА

Величина фазового сдвига в j момент времени

В класс Generator входят следующие функции:

  1. init - функция инициализации переменных. Переменным, описанным в данном классе присваивается первоначальное значение, которое в последствии может быть изменено.

  2. Compute - функция, моделирующая цифровой генератор гармонических колебаний.

Соседние файлы в папке Лабораторный комплекс