
- •5. Разработка программного обеспечения для аоэп
- •5.1. Структура программного комплекса
- •5.2. Модуль взаимодействия с устройством ввода - вывода
- •5.3. Разработка фундаментальных классов
- •5.3.1. Разработка программного модуля объекта «пи - регулятор».
- •5.3.2. Разработка программного модуля объекта «Генератор».
- •5.3.3. Разработка программного модуля «Идентификация»
- •5.3.4. Разработка программного модуля объекта «Заграждающий фильтр»
- •5.3.5. Разработка программного модуля объекта «Синхронный детектор»
- •5.4. Разработка интерфейса
- •5.5. Правила использования программного продукта
5.3.3. Разработка программного модуля «Идентификация»
Программная реализация модуля представлена в виде класса IDN, заголовок которого приведен ниже:
class Idn
{
float W1,W2,da,das,k1,k2,h1,h2,st,ss,t1,B;
public:
float A1,A2,Q1,Q2,TK,nf;
float TO,KO,HO,TO2,KO2,HO2;
void init();
void Compute(float,float,float ,float ,float,float,float);
};
Соответствие переменным, используемым при разработке схемы алгоритма блока идентификации, приведено в таблице 3.
Таблица 3. Переменные класса IDN
-
1
W1,W2
2
da,das
3
k1,k2
4
h1,h2
5
st
6
ss
7
t1
8
B
5.3.4. Разработка программного модуля объекта «Заграждающий фильтр»
Программная реализация модуля представлена в виде класса Filter, заголовок которого приведен ниже:
class Filter
{
double GF,JF,IW,HF;
public:
double AF,BF,CF;
double DF;
void init(double, double);
void KZFilter(double, double);
void ZFilter(double, double &);
};
Соответствие переменным, используемым при разработке схемы алгоритма заграждающего фильтра, приведено в таблице 4
Таблица 4. Переменные класса Filter
-
1
AF,BF,CF
Коэффициенты а, в, с фильтра
2
DF
Добротность фильтра
3
HF
(j-2) сигнал на выходе фильтра
4
IW
(j-1) сигнал на входе заграждающего фильтра
5
GF
(j-1) сигнал на выходе заграждающего фильтра
6
JF
(j-1) сигнал на входе заграждающего фильтра
7
XF
j сигнал на входе заграждающего фильтра
В класс Filter входят следующие функции:
init - функция инициализации переменных. Переменным, описанным в данном классе присваивается первоначальное значение, которое в последствии может быть изменено.
KZFilter - функция, с помощью которой вычисляются коэффициенты а, b, c заграждающего фильтра.
ZFilter - функция, которая содержит в себе уравнение динамики заграждающего фильтра в координатах вход - выход, преобразует входную величину, поступающую с выхода ПИ - регулятора, в выходную величину, которая является частью управляющего сигнала, поступающего на объект управления.
5.3.5. Разработка программного модуля объекта «Синхронный детектор»
Программная реализация модуля представлена в виде класса SyncDetector, заголовок которого приведен ниже:
class SyncDetector
{
double TS1,WS1;
double MS,QS;
double M1,M2,M3,M4,Q1,Q2,Q3,Q4;
public:
int NY;
double M,Q,DM,DQ,DMS,DQS;
int S1;
int KCC;
BOOL flag;
void init(double, int);
void Compute(Generator &, double, double, double);
};
Соответствие переменным, используемым при разработке схемы алгоритма синхронного детектора, приведено в таблице 5.
Таблица 4. Переменные класса SyncDetector
-
1
КСС
Число циклов усреднения
2
NY
Число периодов усреднения
3
ТХ
Синусная составляющая
4
WY
Косинусная составляющая
5
МТ
Текущее значение амплитуды АТ(j)
6
QT
Текущее значение фазы jТ(j)
7
DM
Приращение амплитуды на j шаге
8
DQ
Приращение фазы на j шаге
9
M1, M2, M3, M4
Переменные, которые используются при применении метода «скользящего среднего» (для определения текущей амплитуды).
10
Q1 ,Q2,
Q3, Q4
Переменные, которые используются при применении метода «скользящего среднего» (для определения текущей фазы).
В класс SyncDetector входят следующие функции:
init - функция инициализации переменных. Переменным, описанным в данном классе присваивается первоначальное значение, которое в последствии может быть изменено.
Compute - функция, построенная на основе алгоритма синхронного детектора.