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

3385

.pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
4.73 Mб
Скачать

}

if (LBox2->Items->Count==0) Button2->Enabled=false; else Button2->Enabled=true;

if (LBox1->Items->Count==0) Button1->Enabled=false; else Button1->Enabled=true;

}

//---------------------------------------------------------------------------

void __fastcall TFExp::OscClose(TMessage& a)

{

if (bootclic) return;

for (int i=0;i<LBox2->Items->Count;i++)

if (LBox2->Items->Strings[i]=="Осциллограф С1-67")

{

LBox1->Items->Add(LBox2->Items->Strings[i]); LBox2->Items->Delete(i);

tagosc=false;

}

if (LBox2->Items->Count==0) Button2->Enabled=false; else Button2->Enabled=true;

if (LBox1->Items->Count==0) Button1->Enabled=false; else Button1->Enabled=true;

}

void __fastcall TFExp::CloseClick(TObject *Sender)

{

if (tagosc)

{

SendMessage(FindWindow("TFC167","C1-67"),WM_CLOSE,0,0); tagosc=false;

}

if (taggen)

{

SendMessage(FindWindow("TForm1",

"Генератор сигналов низкочастотный Г3-102"),WM_CLOSE,0,0); taggen=false;

}

SendMessage(FExp->Handle,WM_CLOSE,0,0);

}

//---------------------------------------------------------------------------

void __fastcall TFExp::AboutClick(TObject *Sender)

{

AboutBox->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TFExp::FormClose(TObject *Sender, TCloseAction &Action)

{

SendMessage(FindWindow("TFC167","C1-67"),WM_CLOSE,0,0); SendMessage(FindWindow("TForm1",

"Генератор сигналов низкочастотный Г3-102"),WM_CLOSE,0,0);

}

//---------------------------------------------------------------------------

void __fastcall TFExp::SpClick(TObject *Sender)

{

Application->HelpCommand(HELP_CONTENTS, 0);

}

//---------------------------------------------------------------------------

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

программные средства для работы кмплекса (раздел 4.4) под управлением опе

Рис. 4.26. Эмулятор виртуального осциллографа

рационной системы WINDOWS, разработаны более совершенные эмуляторы приборов. Эмулятор передней панели осциллографа представлен на рис. 4. 26-

4.27. C целью изучения процессов аналого –цифровго преобразования (АЦП) предусмотрен вывод 1024 отсчѐтов входного сигнала 8 – разрядным АЦП. Переработаны и эмуляторы передних панелей виртуальных средств измерений, входящих в состав комплекса (осциллограф, спектроанализатор и вольтметр). С целью предания виртуальным средствам етрологических характеристик реальных приборов программой предусмотрено задание параметров погрешности (плотность распределения и пределы отклонения нормирующего параметра). Эта информация вводится с помощью программных панелей.

Рис. 4. 27. Эмулятор передней панели "виртуального" осциллографа при вход ной частоте реального генератора Г3 - 102 равной 1,2 и 12 кГц с массивами данных отсчѐтов (1024).

5. ПРОЕКТИРОВАНИЕ ВИРТУАЛЬНЫХ СРЕДСТВ СПЕЦИАЛЬНОГО ПРИМЕНЕНИЯ

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

формационных технологий. В зависимости от характера решаемых с помощью лабораторной работы задач, виртуальные средства могут быть реализованы лишь на алгоритмическом (при этом эмулятор панели прибора играет вспомогательную роль), на аппаратном (в этом случае эмулятор передней панели играет главную роль) либо вовсе решать комплексную задачу при которой разрабатывается лабораторная установка на базе не имеющего аналога приборе (разд.5.15). Далее рассмотрим практическую реализацию перечисленных выше виртуальных средств измерения, разработанных студентами радиотехнического факультета и внедрѐнных в учебный процесс по курсу «Основы метрологии и радиоизмерения». Результаты этих разработок применяются также и при решении учебных задач для других специальностей (в частности, связанных с защитой информации).

5.1. Алгоритмические виртуальные средства измерений

Реализация подобных средств измерений базируется на физических законах, положенных в основу их работы. Так средства измерения группы Е реализуют известные законы: Ома (метод «вольтметра – амперметра»), Томпсона (резонансный и гетеродинный методы), «уравнение баланса моста» (мостовой). Реализацию подобных ВСИ рассмотрим на примере куметра.

Виртуальный куметр

5.1.1. Программная модель измерителя добротности

Данное индивидуальное задание представляет собой попытку построения физической модели измерителя добротности (куметра). За основу был взят прибор Е9-4. Измеритель добротности Е9-4 предназначен для измерения прямым способом с непосредственным отсчетом эффективной добротности катушек индуктивности. Прибор также находит широкое применение для измерения величины емкости и тангенса угла потерь конденсаторов, индуктивности катушек и в других целях (косвенным способом).

Модель измерителя добротности учитывает многие нюансы работы физического прибора. Это количество и диапазоны шкал, погрешности измерений, калибровка прибора.

Диапазон частот генератора прибора от 50 кГц до 36 МГц разбит на 8 поддиапазонов:

50 -130 кГц; 130 -350 кГц; 350 -1000 кГц; 1,0 - 3,0 МГц; 3,0 - 6,0 МГц; 6,0-14 МГц; 14 - 22 МГц; 22 - 36 МГц.

Как видно, диапазоны шкал несколько не совпадают с соответствующими шкалами прибора Е9-4. Это сде-

лано для удобства работы со шкалами и отсчета по ним значений. Диапазон непосредственного отсчета доб-

ротности от 5 до 600 единиц перекрывается тремя шкалами: 60, 200, 600. Пределы изменения емкости ос-

новного конденсатора измерительного блока от 25 до 450 пФ.

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

Кнопка "Измерение" предназначена для отсчета со шкал прибора измеряемых параметров элементов. Кнопка "Уст. нуля" предназначена для установки нуля Q-вольтметра. Если Q-вольтметр перед началом измерений не будет установлен на нулевую отметку, систематическая составляющая погрешности измерений будет велика. Кнопка 'Калибровка' служит для калибровки Q-вольтметра и вольтметра уровня. Без проведения калибровки также будут проявляться существенные ошибки во время измерений (мультипликативная составляющая). С помощью кнопки "Параметры» пользователь может ввести параметры подключенных к измеряемых элементов. Кнопка "Выкл" завершает работу программы, С помощью кнопок "<", ">", "«" "»" "<«", ">»" , находящихся под соответствующими шкалами прибора можно передвигать их ползунки и регулировать параметры прибора.

Для работы с моделью необходима мышь, с помощью которой производится большая часть действий. Мышью нажимаются все кнопки, с клавиатуры вводятся значения элементов. Последовательность работы с моделью следующая. При начальном запуске программы вводятся параметры «подключенных» к прибору катушки индуктивности и конденсатора. При этом используются цифровые клавиши и клавиша ввода. Установка на ноль и калибровка Q- вольтметра и вольтметра уровня производится при нажатой клавише "Уст. нуля" и кнопками регулировки. Измерения производятся при нажатой кнопке "Измерение". При этом значение добротности отображается на шкале Q- вольтметра. Для нахождения добротности и других параметров катушки индуктивности, конденсатора, а также колебательного контура следует регулировать частоту генератора и емкость переменного конденсатора.

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

Для измерения емкости собственной емкости катушки измерительный конденсатор поставить в положение 50 пФ. Контур настраивается в резонанс. Затем генератор настраивается на частоту, равную половине первой резонансной частоты. Контур снова настраивается в резонанс с помощью измерительного конденсатора. Собственная емкость катушки определяется по формуле:

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

где f - в кГц., С - в пФ, L - в мкГн,

Индуктивности катушек в пределах от 0,1 мкГн до 100 мГн могут быть измерены с непосредственным отсчетом на нескольких фиксированных частотах. Точность измерения индуктивности зависит от величины собственной емкости катушки и возрастает с увеличением введенной в измерительный контур емкости. Шкала индуктивности находится под шкалой емкости. В зависимости от величины измеряемой индуктивности генератор устанавливается на одну из частот в соответствии с табл. 5.1.

Добротность внешнего колебательного контура определяется прямым способом при помощи расстройки частоты генератора и определения добротности по максимуму отклонения Q-вольтметра. Возможно также измерение полного сопротивления цепи.

Таблица 5.1

Частота

Диапазон измерения L

Множитель шкалы L

76 кГц

10

– 100 мГн

10

240 кГц

1

– 10 мГн

1,0

760 кГц

0,1 – 1 мГн

0,1

2,4 МГц

10 – 100 мкГн

10

7,6 МГц

1 –10 мкГн

1,0

24 МГц

0,1 – 1 мкГн

0,1

Эмулятор передней панели этого «виртуального» прибора не совпадает с реальной и выполняет только вспомогательную роль в процессе проведения экспериментальных измерений (Рис. 5.1).

Рис. 5.1. Виртуальная модель куметра Е9 – 4 (Е4 –7)

5.1.2. Программное обеспечение “виртуального” куметра

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

Panel ()

{

int maxX=getmaxx(),maxY=getmaxy();

pGeneratorImage=malloc(imagesize(GENERATOR_LEFT+20,GENERATOR_TOP+10,

GENERATOR_LEFT+GENERATOR_WIDTH-

20,GENERATOR_TOP+GENERATOR_HEIGHT-5)); pQVoltmetrI-

mage=malloc(imagesize(QVOLTMETR_LEFT,QVOLTMETR_TOP+10, QVOLT-

METR_LEFT+QVOLTMETR_WIDTH,QVOLTMETR_TOP+QVOLTMETR_HEI GHT-5));

pLevelVoltmetrImage=malloc(imagesize(LEVEL_VOLTMETR_LEFT,

LEVEL_VOLTMETR_TOP+10,LEVEL_VOLTMETR_LEFT+LEVEL_VOLTMETR_ WIDTH,

LEVEL_VOLTMETR_TOP+LEVEL_VOLTMETR_HEIGHT-

5)); pCImage=malloc(imagesize(C_SCALE_LEFT,C_SCALE_TOP+10,

C_SCALE_LEFT+C_SCALE_WIDTH,C_SCALE_TOP+C_SCALE_HEIGHT- 5));

pLImage=malloc(imagesize(L_SCALE_LEFT+20,L_SCALE_TOP+10, L_SCALE_LEFT+L_SCALE_WIDTH-

20,L_SCALE_TOP+L_SCALE_HEIGHT-5)); setcolor(WHITE); setlinestyle(SOLID_LINE,1,THICK_WIDTH);

rectangle(0,0,maxX,maxY);

setcolor(BLACK); setlinestyle(SOLID_LINE,1,NORM_WIDTH); rectangle(3,3,maxX-3,maxY-3);

setfillstyle(SOLID_FILL,LIGHTGRAY); bar(4,4,maxX-4,maxY-4); setfillstyle(SOLID_FILL,BLUE);

bar(5,5,maxX-5,20); setcolor(WHITE);

outtextxy(10,10,"Њ®¤Ґ«м Ё§¬ҐаЁвҐ«п ¤®Ўа®в-®бвЁ"); DrawGeneratorScale(1);

setcolor(RED);

line(GENERATOR_LEFT+20,GENERATOR_TOP+10,GENERATOR_LEFT

+20,

GENERATOR_TOP+GENERATOR_HEIGHT-5); generatorPosition=50000L;

qVoltmetrPosition=20;

DrawQVoltmetrScale(1);

DrawCScale();

DrawLScale();

DrawLevelVoltmetrScale(); DrawDownButton(BUTTON_DIAPASON1); DrawUpButton(BUTTON_DIAPASON2); DrawUpButton(BUTTON_DIAPASON3); DrawUpButton(BUTTON_DIAPASON4); DrawUpButton(BUTTON_DIAPASON5); DrawUpButton(BUTTON_DIAPASON6); DrawUpButton(BUTTON_DIAPASON7); DrawUpButton(BUTTON_DIAPASON8); DrawUpButton(BUTTON_GENERATOR_SLOW_LEFT);

DrawUpButton(BUTTON_GENERATOR_SLOW_RIGHT); DrawUpButton(BUTTON_GENERATOR_LEFT); DrawUpButton(BUTTON_GENERATOR_RIGHT); DrawUpButton(BUTTON_GENERATOR_FAST_LEFT); DrawUpButton(BUTTON_GENERATOR_FAST_RIGHT); DrawDownButton(BUTTON_QVOLTMETR_DIAPASON1); DrawUpButton(BUTTON_QVOLTMETR_DIAPASON2); DrawUpButton(BUTTON_QVOLTMETR_DIAPASON3); DrawUpButton(BUTTON_MEASURING); DrawUpButton(BUTTON_SET_ZERO); regime=REGIME_PARAMETERS;

measuring=FALSE; DrawUpButton(BUTTON_CALIBRATION); DrawDownButton(BUTTON_PARAMETERS); DrawUpButton(BUTTON_LEVEL_VOLTMETR_LEFT); DrawUpButton(BUTTON_LEVEL_VOLTMETR_RIGHT); DrawUpButton(BUTTON_LC_LEFT); DrawUpButton(BUTTON_LC_RIGHT); DrawUpButton(BUTTON_LC_FAST_LEFT); DrawUpButton(BUTTON_LC_FAST_RIGHT); DrawUpButton(BUTTON_QVOLTMETR_LEFT); DrawUpButton(BUTTON_QVOLTMETR_RIGHT); DrawUpButton(BUTTON_OFF);

DrawInL();

DrawInC();

rLMeaning=0;

lMeaning=0;

Вспомогательная программа, определяющая вид эмулятора передней панели куметра представлена ниже и с целью экономии объѐма пособия в виде фрагмента.

#define BUTTON_DIAPASON1 1 #define BUTTON_DIAPASON2 2 #define BUTTON_DIAPASON3 3 #define BUTTON_DIAPASON4 4 #define BUTTON_DIAPASON5 5 #define BUTTON_DIAPASON6 6 #define BUTTON_DIAPASON7 7 #define BUTTON_DIAPASON8 8

#define BUTTON_GENERATOR_SLOW_LEFT 9 #define BUTTON_GENERATOR_SLOW_RIGHT 10 #define BUTTON_GENERATOR_LEFT 11

#define BUTTON_GENERATOR_RIGHT 12 #define BUTTON_GENERATOR_FAST_LEFT 13

#define BUTTON_GENERATOR_FAST_RIGHT 14 #define BUTTON_QVOLTMETR_DIAPASON1 15 #define BUTTON_QVOLTMETR_DIAPASON2 16 #define BUTTON_QVOLTMETR_DIAPASON3 17 #define BUTTON_MEASURING 18

#define BUTTON_SET_ZERO 19 #define BUTTON_CALIBRATION 20 #define BUTTON_PARAMETERS 21

#define BUTTON_LEVEL_VOLTMETR_LEFT 22 #define BUTTON_LEVEL_VOLTMETR_RIGHT 23 #define BUTTON_LC_LEFT 24

#define BUTTON_LC_RIGHT 25 #define BUTTON_LC_FAST_LEFT 26 #define BUTTON_LC_FAST_RIGHT 27

#define BUTTON_QVOLTMETR_LEFT 28 #define BUTTON_QVOLTMETR_RIGHT 29 #define BUTTON_OFF 30

#define BUTTON_DIAPASON1_LEFT 410 #define BUTTON_DIAPASON1_TOP 30 #define BUTTON_DIAPASON1_WIDTH 105 #define BUTTON_DIAPASON1_HEIGHT 20

#define BUTTON_DIAPASON2_LEFT 410 #define BUTTON_DIAPASON2_TOP 55 #define BUTTON_DIAPASON2_WIDTH 105 #define BUTTON_DIAPASON2_HEIGHT 20

………………………………………………………..

………………………………………………………..

#define REGIME_MEASURING 1 #define REGIME_SET_ZERO 2 #define REGIME_CALIBRATION 3 #define REGIME_PARAMETERS 4

Виртуальная модель спектроанализатора

Этот прибор разработан на кафедре СИБ одним из первых в 1996 году и был реализован на базе РС 286 модели, одной из са-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]